片段:通过父活动直接访问公共数据 - >有什么缺点?

时间:2013-09-03 08:14:16

标签: android android-fragments android-activity

我正在使用带有两个片段的SlidingPaneLayout ......

在左侧,我显示了一些一般信息,在右侧显示了所有其他信息......

如果我使用默认方式,通过意图将数据提供给片段,我必须保持两个片段之间的数据同步。

那么通过父活动共享数据有哪些缺点?有吗?或者他们为什么不应该这样做?

为什么不在片段中使用以下内容:

Data d = ((ParentActivity) getActivity()).getSharedData()

而不是

Intent intent = getActivity().getIntent();
Data d = (Data)intent.getExtras().getSerialisable("sharedData");

1 个答案:

答案 0 :(得分:0)

不要将Activity转换为已知的自定义Activity,而是让Activity实现一个接口,并在Fragment附加到Activity时将其强制转换为该接口。

这样,Fragment不会绑定到Activity,只要它提供了接口,就可以在另一个Activity中重用。

这是谷歌推荐的方式:

http://developer.android.com/guide/components/fragments.html#EventCallbacks