5

Estoy usando la biblioteca Sherlock ActionBar y tengo una actividad SherlockFragmentActivity que implementa ActionBar.TabListener (para mis pestañas) y tengo 3 pestañas ... cada una de ellas es un fragmento de SherlockFragment. Cuando giro, toda la Actividad se recrea y pierdo todas las variables declaradas en mi onCreate dentro del Fragmento. ¿Cómo voy a arreglar esto?Fragmento dentro de la pestaña Actividad ¿Perdiendo todos los datos al girar?

Pensé que debería usar fragmentos como pestañas en lugar de actividades ... ¿es esto incorrecto?

EDIT: Debo mencionar que mi solución actual es tener listas estáticas en la Actividad Tab y tener las cosas fragmento de empuje a estas listas en onPause (y conseguir cosas detrás de ellos en onResume). REALMENTE no me gusta hacer esto y sé que tiene que haber una mejor manera.

Además, con respecto a if (savedInstanceState == null), lo he intentado y parece que no funciona. Creo que es porque la Actividad que contiene mis Fragmentos está siendo recreada y las pestañas necesitan ser recreadas.

+0

¿Está reteniendo los fragmentos? –

+0

¿quizás no? Esta es la primera vez que uso Fragmentos en una aplicación. – snotyak

+1

Debería haber un método llamado setRetainInstance() o algo así. Tengo una conexión muy pobre ahora, así que no puedo verificarlo por ti. –

Respuesta

5

Hay un método llamado setRetainInstance() en la clase Fragment, que debe establecer en true. Eso guardará la instancia de sus fragmentos, y luego puede verificar las instancias guardadas en onCreate().

Más información disponible aquí: http://developer.android.com/reference/android/app/Fragment.html

+1

gracias. Esto es lo que necesitaba además de if (savedInstanceState == null) { // crear pestañas } dentro de mi onCreate() para la pestaña Activity – snotyak

+0

bueno, anteriormente estaba manejando estas cosas en onConfigurationChanged y volviendo a crear todas los fragmentos para el nuevo diseño. Tu solución puede ser más efectiva. –

+0

@ GökhanBarışAker Debería ser, sí :-) –

Cuestiones relacionadas