何か不足しているのか、Fragment
sにonRestoreInstanceState()
メソッドがないのですか?そうでない場合、同様のことを達成するにはどうすればよいですか?
フラグメントにはonRestoreInstanceState
メソッドがありません。
onActivityCreated
でも同じ結果を得ることができます。これは、保存されたインスタンス状態(またはnull)のバンドルを受け取ります。
ソースコードを確認してください here 。
あなたは答えを受け入れたことを知っていますが、 フラグメントに関する公式ドキュメント を読む必要があります(パラグラフ "フラグメントライフサイクルの処理"):
アクティビティのプロセスが強制終了され、アクティビティの再作成時にフラグメントの状態を復元する必要がある場合、バンドルを使用してフラグメントの状態を保持できます。フラグメントのonSaveInstanceState()コールバック中に状態を保存し、onCreate()、onCreateView()、またはonActivityCreated()の間に状態を復元できます。
したがって、あなたに最も適したものを使用できます:onCreate()
、onCreateView()
、またはonActivityCreated()
フラグメントガイドのListFragment 例 で見つけることができます:
_@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
_
次のように使用できます:
_@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
_
onActivityCreated()
は、フラグメントがスタックから戻った後に呼び出されます。
onViewStateRestored
of Fragment
は、onRestoreInstanceState
of Activity
と同等です。ただし、onActivityCreated(Bundle)
の後、onStart()
の前に呼び出されます。