使用bundle将活动中的数据发送到其片段

时间:2015-11-21 03:58:32

标签: android android-fragments

我试图使用bundle从MainActivity向其片段之一发送一个Parcelable数组。我的代码是

Bundle bundle = new Bundle();
MyFragment fragment = new MyFragment();
bundle.putParcelableArray(key, MyParcelableArray);
fragment.setArguments(bundle);

调试时,我发现MyParcelableArray不为null,但bundle mParcelledData为null。因此,它抛出一个空指针错误。 为什么会这样?

我正在检索片段onCreateView中的代码,如下所示。

Bundle bundle = getArguments();
Parcelable[] parcelables = bundle.getParcelableArray(MainActivity.key); 

在上面的行中获取空指针。

1 个答案:

答案 0 :(得分:0)

打开片段时使用下面的代码

Bundle bundle= new Bundle();
bundle.putSerializable("data", MyParcelableArray);
ListFrag newFragment = new ListFrag ();
newFragment.setArguments(bundle);

在代码

下面的片段中获取捆绑数据
Bundle b = getArguments();
ArrayList<collection> yourArrayList = (ArrayList<collection>) b.getSerializable("data");