我正在与Android Fragment
进行非常广泛的合作,我遇到的一个问题是缺少将复杂对象传递给它的适当机制。从活动中获取片段中的数据
在为Fragments
Android开发者文档,他们有一个static
方法称为newInstance
调用将被打包成一个Bundle
和Fragment
内部使用一些简单的参数。但是,这种方法不能用于传递复杂的对象。
因为我一直在使用Fragments api,所以传递给它的复杂对象变得越来越重要。一种方法是通过实现Parcelable
接口,我不想为所有类做这些。
所以,我想我能做到这一点:
- 像这样定义一个接口的片段:
// Container Activity must implement this interface
public interface ReceiveDataInterface {
public MyClass getData(uniqueFragmentID);
}
使用该片段来实现该接口并调用ReceiveDataInterface.getData(getArgument.getString(UNIQUEID))
强制活动
- 在
Activity
实例化片段使用newInstance
方法,通过传递uniqueFragmentID
并实现ReceiveDataInterface
,该数据基于uniqueFragmentID
提供数据。
这样做是个好主意吗?如果不是,为什么?我该如何去做这件事?
注意:这与文档中描述的OnArticleSelectedListener
相同。
任何帮助,非常感谢。
如果你不想创建一个parcelable,你的方法对我来说看起来不错。我没有发现任何错误的地方。 –