tutorial trabajar studio new implement how fragments fragmentos create con android save state android-fragments

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