メソッドとフィールドを含む複雑なオブジェクトを Fragment に渡す必要があります。複合オブジェクトは、フラグメントによって呼び出されるインターフェイス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
が、フラグメントからアクセスしようとするonCreateView
と、NullPointerException が発生する場合があります。
この例外は、いくつかの古いデバイスと一部の Kindle デバイスでのみ発生しました。
私が間違っていることはありますか?オブジェクトをフラグメントに渡すにはどうすればよいですか?