Risposte:
I frammenti non hanno un onRestoreInstanceState
metodo.
È possibile ottenere lo stesso risultato in onActivityCreated
, che riceve un bundle con lo stato dell'istanza salvata (o null).
Controlla il codice sorgente qui .
So che hai accettato la risposta, ma dovresti leggere la documentazione ufficiale sui frammenti , e dice (paragrafo "Gestione del ciclo di vita dei frammenti"):
È possibile mantenere lo stato di un frammento utilizzando un bundle, nel caso in cui il processo dell'attività venga terminato e sia necessario ripristinare lo stato del frammento quando l'attività viene ricreata. È possibile salvare lo stato durante il callback onSaveInstanceState () del frammento e ripristinarlo durante onCreate (), onCreateView () o onActivityCreated ()
Quindi, è possibile utilizzare tale vi si addice meglio: onCreate()
, onCreateView()
, oonActivityCreated()
In di guida Frammenti ListFragment esempio si possono trovare:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Che puoi usare in questo modo:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated()
viene invocato dopo che il frammento è tornato dallo stack.
onViewStateRestored
di Fragment
è l'equivalente di onRestoreInstanceState
di Activity
. Ma si chiama dopo onActivityCreated(Bundle)
e prima onStart()
.