当前位置:主页 » 【Android】fragment与Activity的通信

【Android】fragment与Activity的通信

尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例。有时候相互间还是要就像数据传递的。

需要准备的:

编译工具:Eclipse

详细操作方法和步骤:

为了在Activity中显示Fragment,必须将Fragment添加到Activity中。将Fragment添加到Activity中有如下两种方式: 在布局文件中使用<fragment.../>元素添加Fragment,<fragment.../>元素的android:name属性指定Fragment的实现类。 在java代码中通过FragmentTransaction对象的add()方法来添加Fragment。
在布局文件中使用<fragment.../>元素添加Fragment,<fragment.../>元素的android:name属性指定Fragment的实现类。 这个使用方法。如图的布局页面代码
Fragment的动态添加
将Fragment添加到Activity之后,Fragment必须与Activity交互信息,这就需要Fragment能获取它所在的Activity,Activity也能获取它所包含的任意的Fragment。可以按如下方法进行。 Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity。 Activity获取它包含的Fragment:调用Activity关联的FragmentManager的findFragmentById(int id) 或 findFragmentByTag(String tag)方法即可获取指定的Fragment。
Fragment 与 Activity可能还需要相互传递数据,可用这个方式。 Activity向Fragment传递数据:在Activity中创建Bundle数据包,并调用Fragment的setArgument(Bundle bundle)方法即可将Bundle数据包传递给Fragment。 Fragment向Activity传递数据或Activity需要在Fragment运行中进行实时通信: 在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口,这样Fragment即可调用该回调方法将数据传递给Activity。
通过Bundle传递的数据

需要注意的:

本步骤需要一定代码基础 程序代码以代码片段的形式展示

请看图片示例:

【Android】fragment与Activity的通信

【Android】fragment与Activity的通信

【Android】fragment与Activity的通信

【Android】fragment与Activity的通信

【Android】fragment与Activity的通信

【Android】fragment与Activity的通信