Antworten:
Fragmente haben keine onRestoreInstanceState
Methode.
Sie können das gleiche Ergebnis erzielen onActivityCreated
, indem Sie ein Bundle mit dem Status der gespeicherten Instanz (oder null) erhalten.
Überprüfen Sie den Quellcode hier .
Ich weiß, dass Sie die Antwort akzeptiert haben, aber Sie sollten die offizielle Dokumentation über Fragmente lesen und darin steht (Absatz "Umgang mit dem Fragmentlebenszyklus"):
Sie können den Status eines Fragments mithilfe eines Bundles beibehalten, falls der Prozess der Aktivität abgebrochen wird und Sie den Fragmentstatus wiederherstellen müssen, wenn die Aktivität neu erstellt wird. Sie können den Status während des Rückrufs von onSaveInstanceState () des Fragments speichern und entweder während onCreate (), onCreateView () oder onActivityCreated () wiederherstellen.
So können Sie feststellen , dass Anzüge verwenden Sie am besten können : onCreate()
, onCreateView()
oderonActivityCreated()
Im ListFragment- Beispiel des Fragment-Handbuchs finden Sie:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Was Sie so verwenden können:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated()
wird aufgerufen, nachdem das Fragment vom Stapel zurückgekehrt ist.
onViewStateRestored
von Fragment
ist das Äquivalent onRestoreInstanceState
von Activity
. Aber es heißt nach onActivityCreated(Bundle)
und vor onStart()
.