そのため、TextView やその他の要素の設定に使用されるオブジェクト (オブジェクト O) を含むフラグメント (フラグメント A) があります。フラグメントをインスタンス化するには、静的メソッド A.getInstance(O) を使用します。オブジェクト O はシリアライズ可能であるため、instance.setArguments などを使用してバンドルを介してフラグメント A の新しいインスタンスに送信できます。
A の onCreate メソッドで O を取得し、onViewCreated で O を使用してフィールドをセットアップします。ここまではすべて正常に動作します。A を別のフラグメント (フラグメント B)に置き換え、B から A に戻ると、引数 Bundle にオブジェクト O が含まれなくなり、NullPointerException が発生します。Bundle 自体は null ではありませんが、O は含まれていません。
このメソッドを使用してフラグメントを置き換えます。
public void replaceCurrentFragment(Fragment fragment) {
FragmentTransaction fragmentTransaction = context.getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment).addToBackStack(null).commit();
}
フラグメント A も上記の方法を使用して表示されます。
私は何を間違っていますか?