Fragment argument

Posted mystic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment argument相关的知识,希望对你有一定的参考价值。

每个Fragment实例都可以附带一个Bundle对象,该bundle包含键值对,可以像附加extra到Activity的intent中那样使用他们。一个键值对即一个argument。

创建fragement argument,首先创建Bundle对象,然后,使用Bundle限定类型的“put”方法,将argument添加到bundle中。如以下代码所示:

Bundle args = new Bundle();
        args.putSerializable(ARG_CRIME_ID,crimeId);

        CrimeFragment fragment = new CrimeFragment();
        fragment.setArguments(args);
        return fragment;

fragment有两种方式获取保存在activity的intent内的数据信息 * 方式一:即直接在fragment中调用getActivity().getIntent()方法获取托管Activity的intent,然后为extra添加key,得到intent内的extra信息。 * 但该方法牺牲了fragment的封装性,fragment不再是可复用的构建单元,因为它总需要由某个具体activity托管着。 * 方式二:先创建Bundle对象,将activity的intent内的数据信息argument添加到bundle中,再调用Fragment.setArguments(Bundle)方法, * 因为每一个fragment实例都可附带一个Bundle对象。如下代码既是。 * * 注意:交互的activit和fragment不需要也无法同时保持通用独立性。托管activity就应该知道有关托管fragment方法的细节, * 但fragment则不必知道其托管activity的细节问题。 */

 

以上是关于Fragment argument的主要内容,如果未能解决你的问题,请参考以下文章

如何通过代码设置片段标签?

Android 片段生命周期

从片段中的相机拍照

后按时从 onCreate() 开始片段

RadioGroup结合RadioButton使用切换Fragment片段

Listview 项目未在 Fragment Android 中显示