看著視頻學(xué)習(xí)的,F(xiàn)ragment:3.Fragment使用方法_嗶哩嗶哩_bilibili
程序的運(yùn)行效果是,手機(jī)頁面有2個(gè)fragment,每個(gè)fragment 有一個(gè)text view,一個(gè)按鈕,按一下顯示,'fine,and you?',各自獨(dú)立。
在android studio 下新建一個(gè)工程,類型是?Empty View Activity,本身就有一個(gè)Activity。就有文件MainActivity.java 或者kt,還有一個(gè)layout 文件,activity_main.xml。新建一個(gè)fragment,操作如下圖:
可以看到左邊有4個(gè)文件:程序文件 BlankFragment.kt,MainActivity.kt (Java版本是Java),布局文件activity.xml,fragment_blank.xml,分別對4個(gè)文件修改,先簡化,再添加點(diǎn)點(diǎn)代碼。然后就測試成功了。
最后文件如下:
activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Hello World!" />
<fragment android:name="com.liwensoft.hellofragment.BlankFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:id="@+id/fragment1"
/>
<fragment android:name="com.liwensoft.hellofragment.BlankFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:id="@+id/fragment2"
/>
</LinearLayout>
fragment_blank.xml?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="@string/hello_blank_fragment"
android:id="@+id/tv1"/>
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/button"
android:text="how are you"/>
</LinearLayout>
應(yīng)用代碼文件MainActivity.kt
package com.liwensoft.hellofragment
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
BlankFragment.kt
package com.liwensoft.hellofragment
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
class BlankFragment : Fragment() {
private lateinit var tv: TextView
private lateinit var root:View
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
root= inflater.inflate(R.layout.fragment_blank, container, false)
tv=root.findViewById<TextView>(R.id.tv1)
val button=root.findViewById<Button>(R.id.button)
button.setOnClickListener( ){
tv.setText("fine, and you?")
}
return root
}
}
因?yàn)橐曨l是java 語言,首先完成的是java ,其布局文件一樣,代碼是java的,分別如下:
MainActivity.java
package com.liwensoft.hellofragmentjava;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
FragmentBlank.java文章來源:http://www.zghlxwxcb.cn/news/detail-701240.html
package com.liwensoft.hellofragmentjava;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class BlankFragment extends Fragment {
private View root;
private TextView textview;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
if(root==null) {
root = inflater.inflate(R.layout.fragment_blank, container, false);
}
textview=root.findViewById(R.id.tv1);
button=root.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textview.setText("fine,and you?");
}
});
return root;
}
}
代碼簡單易懂,但我開始轉(zhuǎn)了很多地方,列出方便初學(xué)者上手。文章來源地址http://www.zghlxwxcb.cn/news/detail-701240.html
到了這里,關(guān)于Android 下第一個(gè)fragment app 先Java 后Kotlin的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!