Odpowiedzi:
Fragmenty nie mają onRestoreInstanceState
metody.
Ten sam rezultat można osiągnąć w onActivityCreated
, w którym otrzymuje się pakiet z zapisanym stanem instancji (lub zerowym).
Sprawdź kod źródłowy tutaj .
Wiem, że zaakceptowałeś odpowiedź, ale powinieneś przeczytać oficjalną dokumentację dotyczącą fragmentów , która mówi (akapit „Obsługa cyklu życia fragmentów”):
Możesz zachować stan fragmentu za pomocą paczki na wypadek, gdyby proces działania został zabity i musisz przywrócić stan fragmentu po odtworzeniu działania. Możesz zapisać stan podczas wywołania zwrotnego onSaveInstanceState () fragmentu i przywrócić go podczas onCreate (), onCreateView () lub onActivityCreated ()
Tak, można używać który najbardziej Ci odpowiada: onCreate()
, onCreateView()
lubonActivityCreated()
W przykładzie ListFragment przewodnika po fragmentach można znaleźć:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Którego możesz użyć w ten sposób:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated()
jest wywoływana po powrocie fragmentu ze stosu.
onViewStateRestored
z Fragment
jest równoważna onRestoreInstanceState
z Activity
. Ale nazywa się to po onActivityCreated(Bundle)
i przed onStart()
.