您的位置:首页 > 移动开发 > Android开发

Android Fragment的动态添加,Fragment,Activity以及Fragment之间的通信方式

2016-09-17 19:54 561 查看
1。Android Fragment的动态添加

/* 动态添加碎片

* 1.创建带添加的碎片实例

* 2.获取FragmentManager,在活动中可以直接调用getFragmentManager()方法获得.

* 3.开启一个事物,通常需要使用FragmentManager的beginTransaction方法

* 4.向容器中添加碎片,一般使用replace()方法实现,需要传入容器的id和待添加碎片实例.

* 5.提交事物,需要调用Transaction的commit()方法.

*/

// 对于Fragment来说,其处理方式类似于数据库中事物的提交

AnotherRightFragment fragment = new AnotherRightFragment();

FragmentManager fragmentManager = getFragmentManager();

FragmentTransaction transaction = fragmentManager.beginTransaction();

transaction.replace(R.id.right_layout, fragment);

/*

* 点击按钮添加一个碎片之后,这时按下Back键程序就会直接退出,

* 如果模仿类似于返回栈的效果:按下Back键可以回到上一个碎片

* 需要使用FragmentTransaction中提供的addToBacksTack()方法.

* 用于将一个事物添加到返回栈中.

*/

transaction.addToBackStack(null);

transaction.commit();

2。Fragment,Activity以及Fragment之间的通信方式

碎片和活动各自处于一个独立的类中,相互之间并没有明显的方式来进行通信。

A:活动与碎片之间的通信

FragmentManager提供了一个类似于findViewById()的方法:

RightFragment rightFragment = (RightFragment)getFragmentManager().getFragementById(R.id.right_fragment);

这样可以在活动中方便的获取到所有的碎片实力,然后,就可以非常方便的进行活动(Activity)与碎片(Fragment)通信了。

B:碎片与活动之间的通信

每个碎片都可以通过调用getActivity()方法来获得与当前碎片关联的活动(Activity),

因此,通过这种方式,碎片可以方便的与Activity进行通信

C:碎片与碎片之间的通信

由第二种碎片与活动之间的通信方式可知,所有的碎片都可以通过getActivity()方法来获取到所属的Acitvity,因此,碎片可以首先通过getActivity()方法来获取Activity,然后再通过Activity获取所需要通信的碎片的实力,这样,就可以方便的进行碎片与碎片之间的通信了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Fragment