2011-09-07 9 views
2

Dans mon application, j'ai une FragmentActivity qui utilise un FragmentViewPager. Les fragments ont une structure assez complexe de vues avec ListViews et adaptateurs. Le FragmentViewPager semble détruire les fragments qui ne sont pas visibles, et les recréer si l'utilisateur y retourne. Cela entraîne l'effacement de toutes les variables membres qui contiennent les listes et les adaptateurs avec tout le contenu, de sorte que le fragment est vide s'il revient en haut.Android: Préserver les données de vue complexes des fragments

Ma question est maintenant: Comment puis-je conserver ces données? Si je ne me trompe pas, je dois sauvegarder et reprendre la liste avec le contenu de l'adaptateur. Quand et où devrais-je l'enregistrer?

Est-ce une bonne idée de sauvegarder les données dans le FragmentActivity ou dans une classe d'aide singleton en dehors de l'activité?

Répondre

0

Comment puis-je conserver ces données?

Vos données sont déjà "conservées". Vous l'avez chargé à partir d'un modèle de données. Chargez-le à nouveau.

Si l'utilisateur affiche des modifications à l'écran, vous devez le conserver dans votre modèle de données lorsque l'utilisateur effectue les modifications. Ce n'est pas différent de traiter, disons, un RatingBar dans une rangée ListView.

+0

Oui, l'utilisateur modifie les modifications. Son entrée est affichée dans un ListView, qui est - bien sûr - vide après la destruction du Fragment. Si l'enregistrement du contenu dans un modèle de données sous-jacent en dehors de Fragmen/Activity est la seule option, c'est bien. Mais j'aimerais qu'il y ait quelque chose de similaire à 'onRetainNonConfigurationInstance()' et 'getLastNonConfigurationInstance()' pour Fragments. – Terry

Questions connexes