从片段访问父活动的数据
Posted
技术标签:
【中文标题】从片段访问父活动的数据【英文标题】:Accessing data of parent activity from a fragment 【发布时间】:2016-12-30 11:50:23 【问题描述】:从片段访问活动数据成员的最佳方式是什么 我知道的一些方法包括 -
在 Fragment 中创建一个 Activity 将实现的接口。该接口将具有访问 Activity 数据成员的方法。
使用片段中的 ((Activity)getActivity).getXXX() 直接访问。
将数据成员或自定义parcelable类传递给片段的newInstance方法,并将片段参数设置为例如类-
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
稍后我们可以使用 getArguments() 获取参数
哪种方法最好,每种方法的缺点是什么?
【问题讨论】:
【参考方案1】:其实第一种和第三种方法的结合是最好的。应该不惜一切代价避免第二个,因为这会将 Fragment 强烈耦合到特定的Activity
。这将破坏Fragments
的主要优势之一,即能够在不同的Activities
中使用它(即插即用)。
至于第一种和第三种方法。
- 第一个是您通常如何从Fragment
与您的Activity
通信。
- 第三个是您通常如何实例化您的Fragment
,同时将数据从您的Activity
传递给它。当您已经运行了 Fragment
的实例时,您将不得不使用第一种方法。
【讨论】:
以上是关于从片段访问父活动的数据的主要内容,如果未能解决你的问题,请参考以下文章