アプリケーションでは、フラグメントがフォーカスを失う (つまり、別のアクティビティ/フラグメントがその上で開かれる)たびにonSaveInstanceState()
呼び出されます。
同じことが開発者ガイドにも記載されています。
このアプローチを使用して、フラグメントが再開されるたびにフラグメントの状態を維持しようとしています。私の意図は、フラグメントが再開されたときにこれbundle
を呼び出すことでした。onActivityCreated()
フラグメントがonSaveInstanceState
フォーカスを失う前に呼び出されますが。ただし、onActivityCreated()
が呼び出されると、Bundle savedInstanceState
null として受け取ります。
バンドルからデータを取得するにはどうすればよいですか。
コード:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
MyListAdapter adapter = new MyListAdapter(getActivity(),
R.layout.my_row, titles, icons, this);
setListAdapter(adapter);
if (savedInstanceState != null) {
// Never goes inside this condiiton.
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}