Ответы:
У фрагментов нет onRestoreInstanceState
метода.
Вы можете добиться того же результата в onActivityCreated
, который получает бандл с сохраненным состоянием экземпляра (или null).
Проверьте исходный код здесь .
Я знаю, что вы приняли ответ, но вам следует прочитать официальную документацию по фрагментам , и в ней говорится (параграф «Обработка жизненного цикла фрагмента»):
Вы можете сохранить состояние фрагмента с помощью Bundle на случай, если процесс действия будет убит, и вам нужно восстановить состояние фрагмента при воссоздании действия. Вы можете сохранить состояние во время обратного вызова фрагмента 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
из Fragment
является эквивалентом onRestoreInstanceState
из Activity
. Но это называется после onActivityCreated(Bundle)
и до onStart()
.