我需要将包括方法和字段的复杂对象传递给片段。复杂对象实现了一个接口IComplexObject
,然后由片段调用,所以在我的片段中,复杂对象本身是不可见的。
为了创建片段的实例,我使用以下代码,受这篇文章的启发:
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();
}
}
这通常像预期的那样工作,但是,在某些情况下,当我尝试complexObject
从 Fragment访问时,onCreateView
我得到一个 NullPointerException。
我只在一些旧设备和一些 Kindle 设备上遇到过这个异常。
任何想法我做错了什么?如何将对象传递到我的片段中?