trabajar - java android fragment
fragmento de Android en RestoreInstanceState (4)
¿Me estoy perdiendo algo o Fragment s no tiene un método onRestoreInstanceState() ? Si no, ¿cómo hago para obtener algo similar?
En el example ListFragment de la guía Fragments, puede encontrar:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Que puedes usar así:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated() se invoca después de que el fragmento vuelve desde la pila.
Los fragmentos no tienen un método onRestoreInstanceState .
Puede lograr el mismo resultado en onActivityCreated , que recibe un paquete con el estado de la instancia guardada (o nulo).
Verifica el código fuente here .
Sé que has aceptado la respuesta, pero deberías leer la documentación oficial sobre los fragmentos y dice (párrafo "Manejo del ciclo de vida del fragmento"):
Puede conservar el estado de un fragmento utilizando un paquete, en caso de que se mate el proceso de la actividad y necesite restablecer el estado del fragmento cuando se recrea la actividad. Puede guardar el estado durante la devolución de llamada onSaveInstanceState () del fragmento y restaurarlo durante onCreate (), onCreateView () o onActivityCreated ()
Por lo tanto, puede usar lo que más le convenga: onCreate() , onCreateView() , o onActivityCreated()
onViewStateRestored of Fragment es el equivalente de onRestoreInstanceState of Activity . Pero se llama después de onActivityCreated(Bundle) y antes de onStart() .