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