Fragment跳转
1 先在activity上创建一个上下为LinearLayout布局,中间为一个按钮的xml。并且创建2个Fragment
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activity_main" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:gravity="center" 8 android:orientation="vertical" 9 tools:context="com.example.my.myapplicationtiaozhuan.MainActivity">
10
11 <LinearLayout
12 android:id="@+id/show"
13 android:layout_width="match_parent"
14 android:layout_height="wrap_content"
15 android:gravity="center"
16 android:orientation="vertical">
17
18 </LinearLayout>
19
20
<Button
21 android:id="@+id/btnshow"
22 android:layout_width="wrap_content"
23 android:layout_height="wrap_content"
24 android:layout_gravity="center"
25 android:layout_marginTop="20dp"
26 android:onClick="onClick"
27 android:text="@string/btnshow" />
28
29 <LinearLayout
30 android:id="@+id/txtshow2"
31 android:layout_width="wrap_content"
32 android:layout_height="wrap_content"
33 android:layout_marginTop="100dp"
34 android:orientation="vertical">
35
36 </LinearLayout>
37 </LinearLayout>
string文件
<resources> <string name="app_name">FragmentJump</string> <string name="txtshow">This is first fragment</string> <string name="btnshow">Show Next Page</string> <!-- TODO: Remove or change this placeholder text --> <string name="hello_blank_fragment">Hello blank fragment</string> <string name="show">This is in second fragment</string> </resources>
2 创建一个静态Fragment :“This is first fragment”
1 View view = inflater.inflate(R.layout.fragment_biaoti, container, false); 2 // 加载一些初始化的数据 3 TextView txtContent = (TextView) view.findViewById(R.id.biaoti_show) //通过ID获取视图内容 4 txtContent.setText(content); 5 return view; 6 7 public void setContent(String content) { 8 this.content = content; 9 }
Fragment静态创建
FragmentManager manager = getFragmentManager(); transaction = manager.beginTransaction(); //添加一个FragmentTransaction的实例 biaotiFragment.setContent("This is first fragment"); transaction.add(R.id.show, biaotiFragment); //静态创建, 用add()方法加上Fragment的对象 transaction.commit(); //调用commit()方法使得FragmentTransaction实例的改变生效
Fragment动态创建编码
btshow.setOnClickListener(new View.OnClickListener() { //监听button事件 @Override public void onClick(View view) { if (btshow.isClickable()) { //button第一次被点击事件 FragmentManager manager = getFragmentManager(); transaction = manager.beginTransaction(); biaotiFragment = new BiaotiFragment(); biaotiFragment.setContent("This is second fragment"); //调用fragment中的setContent()方法将Fragment中的标题改为This is second fragment transaction.replace(R.id.show, biaotiFragment);//将show线性布局替换成biaotiFragment transaction.commit(); } btshow.setOnClickListener(new View.OnClickListener() { //再次监听button事件 @Override public void onClick(View view) { if (btshow.isClickable()) { //button第二次被点击事件 FragmentManager manager = getFragmentManager(); transaction = manager.beginTransaction(); contentFragment.setContent("This is in second fraqment"); transaction.replace(R.id.txtshow2, contentFragment); transaction.commit(); } } }); } }); } private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { //判断手机上退出键 if ((System.currentTimeMillis() - exitTime) > 2000) { //第一次点击返回键 FragmentManager manager = getFragmentManager(); transaction = manager.beginTransaction(); biaotiFragment = new BiaotiFragment(); biaotiFragment.setContent("This is first fragment"); //调用biaotifragment中的setContent()方法 transaction.replace(R.id.show, biaotiFragment); contentFragment=new ContentFragment(); contentFragment.setContent(""); //将contentFragment中的标题改为空 transaction.replace(R.id.txtshow2, contentFragment); transaction.commit(); exitTime = System.currentTimeMillis(); } else { //第二次点击返回键 finish(); //退出 System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }
学习于舍友丁金涛

浙公网安备 33010602011771号