ListView la réutilisation de vues ... je ne veux pas qu'il
J'ai un ListView
, chacun de item
qui contient un ToggleButton
. Après, je bascule et puis faites défiler vers le haut ou vers le bas, la liste est le recyclage de la Vue et de sorte que certaines des autres sont le miroir de l'état activé de la ToggleButton
. Je ne veux pas de cela. Comment puis-je l'empêcher?
- publier vos getview() la méthode il y a un problème dans ce
Vous devez vous connecter pour publier un commentaire.
Android recycle les éléments de la liste à des fins de performance. Il est fortement recommandé de les réutiliser si vous voulez que votre ListView pour faire défiler lentement.
Pour chaque élément de la liste de la
getView
fonction de votre carte est appelé. Là, est l'endroit où vous devez attribuer les valeurs de l'élément de la liste est de demander.Ont un coup d'oeil à cet exemple:
Avis que
ViewHolder
est une classe statique que nous utilisons pour recycler ce point de vue. Ses propriétés sont les points de vue de votre élément de la liste dispose d'. Il est déclaré dans votre carte.mToggles
est déclarée comme une propriété privée de votre carte et avec une méthode publique comme ceci:Ont un regard sur d'autres personnalisé ListView exemples pour plus d'informations.
Espère que cela aide.
getView
est appelé (oublier leif ... else ...
déclaration). Je ne le recommande pas si.Ajouter ces deux méthodes à votre Carte.
.addView
de jeter toutes les lignes de là... Si vous aussi vous avez des images dans les lignes - OutOfMemory exception est juste autour du coin...Vous pouvez utiliser un
HashMap
pour enregistrer vos boutons de l'état:et après avoir gonflé la vue que vous avez lu le
HashMap
pour voir si elle est cochée ou pas:Ne sais pas si ça vous aide dans votre chemin. J'ai eu aussi des problèmes avec le recyclage de mon
EditText
dans monListView
.Peut-être vous devriez essayer de créer votre propre affichage de la liste de défilement de la vue et un conteneur qui contient les enfants qui sont ajoutés au conteneur par programmation. définir la balise d'identification de l'enfant ou vous pouvez utiliser la commande de l'enfant pour que