4

Androidドキュメントで次のように表示されます:

public void setRetainInstance (ブール値保持)

導入されたバージョン: API レベル 11 アクティビティの再作成 (構成変更などによる) でフラグメント インスタンスを保持するかどうかを制御します。これは、バック スタックにないフラグメントでのみ使用できます。設定されている場合、アクティビティが再作成されると、フラグメントのライフサイクルがわずかに異なります。

「これはバックスタックにないフラグメントでのみ使用できます」について詳しく説明してください。テストする簡単な例を作成します。フラグメントをバックスタックに置きます。ただし、setRetainInstance メソッドは引き続き有効です。次のようにフラグメントをバックスタックに入れます:

    FragmentTransaction transaction2 = getSupportFragmentManager().beginTransaction();
    
    MyFragment myFragment = new MyFragment();
    myFragment.setHasOptionsMenu(true);
    transaction2.replace(R.id.fragment_container, myFragment);
    transaction2.addToBackStack(null);
    transaction2.commit();

そして、私のフラグメントの oncreate メソッドで:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);

    Log.v("MyFragment", "onCreate");
}

私はフラグメントの初心者です。この問題を理解するのを手伝ってください。注:私が使用した:SherlockFragment

4

0 に答える 0