【发布时间】:2013-07-03 08:23:07
【问题描述】:
我需要将包含方法和字段的复杂对象传递给片段。复杂对象实现了一个接口IComplexObject,然后由片段调用,因此在我的片段中复杂对象本身是不可见的。
为了创建片段的实例,我使用以下代码,灵感来自this post:
public class SimpleContentFragment extends Fragment {
private IComplexObject complexObject;
protected static SimpleContentFragment newInstance(IComplexObject complexObject) {
SimpleContentFragment f = new SimpleContentFragment();
f.complexObject = complexObject;
return f;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
complexObject.doSomeThings();
}
}
这通常像预期的那样工作,但是,在某些情况下,当我尝试从 Fragment 的 onCreateView 访问 complexObject 时,我得到一个 NullPointerException。
我只在一些旧设备和一些 Kindle 设备上遇到过此异常。
任何想法我做错了什么?如何将对象传递到我的 Fragment 中?
【问题讨论】:
-
使接口
IComplexObject扩展Parcelable。