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);
}
学习于舍友丁金涛

 


 

posted @ 2017-04-18 21:57  千尘  阅读(307)  评论(0)    收藏  举报