ste*_*ana 4 android bundle fragment
我有一个名为 Data 的自定义类,其中包含所有数据。主要活动创建两个片段。我在主要活动中有一个字段,如下所示:
private Data data = new Data();
Run Code Online (Sandbox Code Playgroud)
这些片段是用这个方法创建的:
private ArrayList<Fragment> getFragments() {
ArrayList<Fragment> fragments = new ArrayList<Fragment>();
fragments.add(new fragment_one());
fragments.add(new fragment_two());
return fragments;
}
Run Code Online (Sandbox Code Playgroud)
我需要将数据字段传递给片段,以便片段可以访问数据的方法。
我尝试创建一个包,但我无法传递自定义类。我能做什么?
捆绑包可以接受自定义类,如果它们实现Parcelable或Serializable,Parcelable则速度更快,但实现的工作更多,Serializable更容易实现,但速度较慢。
然后你可以这样做:
Bundle bundle = new Bundle();
bundle.putSerializable("MyData", data);
fragment_one.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)
现在fragment_one将可以访问data它的onCreate(Bundle bundleHoldingData)方法。
另一种选择是在您的片段中有一个公共设置器来接收数据。这样做的好处是您不必等到数据准备好添加片段。
| 归档时间: |
|
| 查看次数: |
10737 次 |
| 最近记录: |