2013-01-07 3 views
0

J'ai une liste à l'intérieur d'un fragment. Certaines parties de vues de la liste sont téléchargées à partir du Web dans l'adaptateur. Quand je change ces parties de texte d'un autre fragment je veux que le premier fragment redessine ses vues.Comment redessiner des vues dans ListView

J'ai essayé:

myListView.invalidate(); 
myListView.invalidateViews(); 
myListView.refreshDrawableState(); 
adapter.notifyDataSetChanged(); 
adapter.updateComments(); 

UpdateComments est ma propre fonction. J'enregistre les pointeurs sur les vues affichées dans onScroll et demande à chaque vue de mettre à jour les vues demandées, mais rien ne se passe.

Si je défile vers le bas puis vers le haut et que ma vue se redessine avec la méthode getView de l'adaptateur, le nouveau texte s'affiche.

Comment mettre à jour les vues sans faire défiler?

+0

vous pouvez utiliser asynctask et voir [this] (http://stackoverflow.com/questions/7882475/android-how-to-update-arrayadapter-asynchronously) – Zyoo

Répondre

0

Il fonctionne bien avec

adapter.notifyDataSetInvalidated(); 

mais il défile en haut de la listview donc je l'utilise alors

feed.setSelection(adapter.lastPosition); 

-je obtenir LastPosition dans la méthode OnScroll de ListView.

0

utilisez de nouveau setAdapter ou setListAdapter dans la liste après la mise à jour.

+0

Je ne veux pas recharger toutes les données à nouveau. – TpoM6oH

Questions connexes