![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Problema con ViewPager y re-creación de la actividad
Muy buenas, llevo un día entero dándole vueltas al problema, probando numerosas soluciones y hasta ahora no he sacado nada en claro.
En una actividad tengo un ViewPager que contiene un número variable de Fragments del mismo tipo que se crean en tiempo de ejecución y uno de otro tipo. La actividad suele funcionar bien, hasta que el sistema se queda sin memoria y mata a la aplicación. Cuando esto ocurre y vuelvo a iniciar la app volviendo a crear el ViewPager y los fragments, varios de ellos (los instanciados por el ViewPager cuando la app se cerró) me aparecen "desvinculados" de mi actividad (getActivity() = null) siempre y cuando estos no se instanciaran por primera vez en esta ocasión. Lo pongo más esquemático:
¿Alguien que haya trabajado ya con esto puede decirme qué hacer? Por lo que he leído, podría ser que el SupportFragmentManager guardase en memoria automáticamente mis fragments y luego los cargase, y de ahí que los fragments estén vinculados al Activity antiguo y por ello su getActivity() es null, ¿pero qué solución tiene esto? Copio mi ViewPagerAdapter: Código:
public class ViewPagerAdapter extends FragmentPagerAdapter{ private SparseArray<Fragment> fragments = new SparseArray<Fragment>(); private Context context; public ViewPagerAdapter(Context context) { super(((FragmentActivity) context).getSupportFragmentManager()); this.context = context; } @Override public Fragment getItem(int arg0) { return fragments.get(arg0); } @Override public int getCount() { return fragments.size(); } public SparseArray<Fragment> getFragments() { return fragments; } public void setFragments(ArrayList<Fragment> fragments) { for(int i = 0; i < fragments.size(); i++){ this.fragments.put(i, fragments.get(i)); } notifyDataSetChanged(); } } Última edición por Arasthel Día 31/10/12 a las 22:24:41 |
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 22:32:07 (GMT +2)
HTCMania: líderes desde el 2007