2012-09-07 22 views
5

Estoy tratando de guardar un estado actual de ViewPager (posición actual, etc.) implementando dos métodos en su PagerAdapter: restoreState() y saveState(). Sin embargo, parece que no funcionan correctamente en mi caso. ¿Qué estoy haciendo mal?¿Por qué restoreState() y saveState() de PagerAdapter no funcionarán?

@Override 
public Parcelable saveState() { 

Bundle bundle = new Bundle(); 
bundle.putParcelable("instanceState", super.saveState()); 
bundle.putInt("stateToSave", position); 
return bundle; 
} 

@Override 
public void restoreState(Parcelable state, ClassLoader c) { 
if (state instanceof Bundle) { 
    Bundle bundle = (Bundle) state; 
    position = bundle.getInt("stateToSave"); 
    super.restoreState(bundle.getParcelable("instanceState"), c); 
    return; 
} 
super.restoreState(state, c); 
} 

Respuesta

-1

¿Intentó utilizar el método onSaveInstanceState de ViewPager? En su Actividad/Fragmento puede guardar el estado de ViewPager llamando a este método y pasar el resultado a Bundle.

Después de la reconstrucción de la Actividad/Fragmento llamada onRestoreInstanceState (parcelable p) usando

+0

No debería estar llamando onSaveInstanceState y onRestoreInstanceState mismo. Déjalo en el marco de Android para hacerlo. –

Cuestiones relacionadas