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()
.