我正在广泛地使用Android Fragment
,我遇到的一个问题是缺乏将复杂对象传递给它的适当机制。
在Fragments
的android开发人员文档中,他们有一个名为static
的{{1}}方法,调用了一些简单的参数,这些参数将打包成newInstance
并在Bundle
。但是,此方法不能用于传递复杂对象。
因为我一直在使用Fragments api,所以将复杂的对象传递给它变得越来越重要。一种方法是实现Fragment
接口,我不想为所有类做这些接口。
所以,我以为我能做到这一点:
Parcelable
使用此片段强制活动来实现界面并调用
// Container Activity must implement this interface
public interface ReceiveDataInterface {
public MyClass getData(uniqueFragmentID);
}
ReceiveDataInterface.getData(getArgument.getString(UNIQUEID))
方法在Activity
实例化片段中传递newInstance
并实施uniqueFragmentID
,根据ReceiveDataInterface
提供数据。这样做是个好主意吗?如果没有,为什么?我应该怎么做呢?
注意:这与文档中描述的uniqueFragmentID
行相同。
非常感谢任何帮助。
答案 0 :(得分:0)
我们将这种方法用于我们为Android构建的任何应用程序。它运作良好。我没有测试过这样做的每种方法,但我认为这是最好的方法之一。
答案 1 :(得分:0)
另一种方法是使片段本身独立。为什么不编写从Fragment本身的网络/数据库中获取数据的代码?