Soy nuevo en Android y me enfrenta el siguiente problema. Estoy desarrollando para ambos, Android 2 y 3, y esta es la razón por la que uso fragmentos. Sin embargo, para que la aplicación funcione en dispositivos Android 2, importo android.support.v4.app.ListFragment. Necesito mantener la selección dentro de mi ListFragment cuando cambie la orientación de la pantalla. Estoy anulando el método onSaveInstanceState()
y puse un int en el paquete. Cuando se gira la pantalla, se llama a este método y el int se agrega al paquete. Sin embargo, cuando se llama al onActivityCreated()
, su paquete es nulo. Estoy siguiendo el ejemplo proporcionado en el sitio web de Android: http://developer.android.com/reference/android/app/Fragment.html, pero como se mencionó anteriormente, después de llamar al onSaveInstanceState()
, el paquete en onActivityCreated()
sigue siendo nulo.Android ListFragment no guarda el paquete en onSaveInstanceState()/no recupera el paquete en onActivityCreated()
Aquí está el código:
import android.support.v4.app.ListFragment;
public class VisitsHomeFragment extends ListFragment {
private int selectedPosition = -1;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState.containsKey("SELECTED_POSITION")) {
selectedPosition = savedInstanceState.getInt("SELECTED_POSITION");
}
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("SELECTED_POSITION", selectedPosition);
}
}
Le agradecería cualquier ayuda con este problema.
onRestoreInstanceState() no está disponible para fragmentos. – Maria
Mi único sugerencia es depurar las fuentes de compatibilidad para ver si puede hacerse cargo de lo que está sucediendo. – PJL
Jugué con el proyecto de muestra (HoneycombGallery), le agregué la Biblioteca de compatibilidad y todo funcionó bien ... En mi aplicación, no es así. La solución temporal para mí fue agregar 'android: configChanges =" orientation "' al Manifiesto, pero no resuelve el misterio del paquete perdido (en realidad pensando en escribir un libro de aventura titulado "El misterio del paquete perdido"). ;-)). – Maria