Відповіді:
Фрагменти не мають onRestoreInstanceState
методу.
Ви можете досягти того ж результату onActivityCreated
, що отримує пакет із збереженим станом екземпляра (або null).
Перевірте вихідний код тут .
Я знаю, що ви прийняли відповідь, але ви повинні прочитати офіційну документацію про фрагменти , і вона говорить (параграф "Поводження з життєвим циклом фрагмента"):
Ви можете зберегти стан фрагмента, використовуючи пакет, якщо процес активності загине і вам потрібно відновити стан фрагмента, коли активність відтворена. Ви можете зберегти стан під час зворотного виклику фрагмента onSaveInstanceState () і відновити його під час onCreate (), onCreateView () або onActivityCreate ()
Таким чином, ви можете використовувати , що підходить вам найкраще: onCreate()
, onCreateView()
абоonActivityCreated()
У прикладі СписокFragment посібника з фрагментів ви можете знайти:
@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()
.