2010-07-10 3 views
2

J'ai un ListView Android, soutenu par un ArrayAdapter. Lorsque l'utilisateur clique sur un élément de la liste, cet élément est supprimé. Tout semble bien fonctionner, vous pouvez cliquer sur chaque élément jusqu'à ce qu'il n'y a plus d'éléments.Supprimer des éléments d'Android ListView/ArrayAdapter ne fonctionne pas après le filtrage de texte

Cependant, tout va mal une fois que le filtrage de texte se produit. Une fois que la liste a été filtrée une fois, même si ce filtre est désactivé, tous les appels suivants à supprimer (Objet) sur l'adaptateur ne parviennent pas à supprimer l'élément de la liste visible. J'ai essayé d'appeler ListView.clearTextFilter() avant de supprimer l'élément, de l'appeler après avoir supprimé l'élément et de ne pas l'appeler tous. Il n'y a pas de différence. J'ai regardé la source pour ArrayAdapter.java et il semble qu'une fois que le filtrage est défini, l'adaptateur utilise une collection pour répondre aux requêtes mais en met à jour une autre. Je ne vois aucun moyen évident de l'amener à revenir sur son comportement. Est-ce un bug ou est-ce que je manque quelque chose?

+0

Pour l'instant, je crée un nouvel adaptateur lorsque je supprime un élément. Cela fonctionne mais cela pourrait être plus efficace. –

Répondre

1

Il semble que ce soit un bug. Je l'ai signalé here.

+0

Il est environ 7ans plus tard, Avez-vous trouvé une solution? –

+0

@ S.R Je ne peux même pas me souvenir de quel projet c'était, mais je pense que je suis juste allé avec la solution de contournement mentionnée dans le commentaire ci-dessus (utiliser un nouvel adaptateur à chaque fois). –

Questions connexes