2

向きの変更時にAndroidがフラグメント(特にネストされたフラグメント)をどのように処理するかを理解するのに問題があります。

a1フラグメントをロードするアクティビティがあるとしますf1f1次に、フラグメントの複数のインスタンスをメソッドf2内のそれ自体にロードしますoncreateview()

今私の活動a1は(oncreate())でこれを持っています:

if (savedInstanceState != null)
    return;

の複数のインスタンスがf1ロードされないようにします。f1重複するf2インスタンスがロードされないようにするために、同じようなことをします。

ただし、私のクラスは後でインスタンスf1を参照する必要があります。f2現在、オブジェクトのArrayListにそれらを格納していますが、方向を変更した後、このArrayListは空になり、インスタンスはとにかく異なるオブジェクトになるとf1思います。f2

だから私の質問は、ネストされたフラグメントを持ち、向きの変更後にそれらへの参照を保持するための最良の方法はどうですか?

4

1 に答える 1

2

FragmentManger を使用して、他のフラグメントへの参照を見つけることができます。

次のようにして、別のフラグメントへの参照を取得できます。

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentById(R.id.details);

また

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentByTag("my tag");

まだご覧になっていない場合は、このブログ記事をご覧ください。

同じフラグメントの複数のインスタンスがある場合、フラグメントを作成するときにタグを設定し、フラグメントを探すときに ID の代わりにそれを使用できます。

于 2012-05-08T19:40:46.330 に答える