我需要將包含方法和字段的複雜對象傳遞給Fragment。複雜的對象實現了一個接口IComplexObject
,然後由Fragment調用,所以在我的Fragment中,複雜對象本身是不可見的。使用複雜對象進行片段初始化
對於創建片段我用下面的代碼,通過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();
}
}
一般情況下會像預期,但是,在某些情況下,當我嘗試從片段的onCreateView
我得到訪問complexObject
一個NullPointerException。
我僅在一些較舊的設備和某些Kindle設備上遇到此異常。
任何想法我做錯了什麼?我如何將對象傳遞到我的片段?
使接口'IComplexObject'擴展'Parcelable'。 –