Android - Ajout et montrant des éléments à la liste un à un à l'aide d'un ArrayAdapter
Je suis en utilisant un ArrayAdapter d'ajouter des éléments personnalisés ListView et afficher les résultats dans mon application Android. Le problème que je vais avoir, c'est que le ArrayAdapter semble attendre jusqu'à ce que tous les articles sont en avant, il montre la vue. C'est-à-dire, quand je suis en ajoutant des éléments à la ArrayAdapter et j'appelle notifyDataSetChanged, il ne fait pas de mise à jour de la liste pour afficher l'article supplémentaire. Il attend jusqu'à ce que tous les éléments sont ajoutés et GetView est appelé avant de montrer les éléments.
Ce que je voudrais faire est de montrer à l'article immédiatement après l'ajouter à la liste. Est-ce possible?
Je crois que le code est le suivant:
r_adapter = new ReminderAdapater(Activity_ContentSearch.this, R.layout.search_listitem, myList);
listView.setAdapter(r_adapter);
...
r_adapter.notifyDataSetChanged();
r_adapter.clear();
for(int i = 0; i < myList.size(); i++)
{
r_adapter.add(myList.get(i));
r_adapter.notifyDataSetChanged();
}
Comme vous pouvez le voir, même si je suis d'appel notifyDataSetChanged après la méthode add, il ne fait pas de mise à jour de la vue. Après il a fini au-dessus de la boucle de la vue est enfin mis à jour (basé sur ce que je sais, c'est parce que GetView n'est pas appelé à la fin de cette section du code est fait).
J'ai essayé de remplacer la méthode add de mon custom ArrayAdapter avec pas de chance, car je n'ai pas accès à la vue dans cette méthode.
Toute aide serait la bienvenue 🙂
Bara
OriginalL'auteur Bara | 2010-01-25
Vous devez vous connecter pour publier un commentaire.
Android, l'INTERFACE utilisateur est seul thread. Vous ne donnant pas le contrôle en arrière pour Android de l'application principale thread à chaque fois que vous ajoutez une entrée à la carte. Par conséquent, Android n'obtenez pas une occasion d'afficher vos entrées jusqu'à ce que vous revenez de contrôle, et vous n'êtes pas le faire jusqu'à ce que vous avez rempli votre carte dans son intégralité.
Voici un exemple montrant l'utilisation d'un
AsyncTask
pour remplir unArrayAdapter
progressivement par l'intermédiaire d'un thread d'arrière-plan.OriginalL'auteur CommonsWare