J'ai besoin d'afficher l'image de contact des utilisateurs dans mon ListView personnalisé. Je suis capable de récupérer des images via AsyncTask, mais je ne suis pas en mesure de définir l'image car la liste sera déjà chargée, avant la fin de AsyncTask. J'appelle le AsycTask pour chaque ligne de la liste. J'ai l'Image Uri en main après la fin de l'AsyncTask. S'il vous plaît donner quelques idées sur la façon de le faire. J'utilise un adaptateur de base personnalisé pour ce faire. Je suis capable de remplir ImageView si j'utilise la méthode AsyncTask(). Get() mais bloque le thread d'interface utilisateur et annule le but de AsyncTask.Android ListView personnalisé avec l'image de contact
Répondre
Enfin, j'ai été capable de trouver le problème .. La méthode onPostExecute() de ma classe AsyncTask n'est pas exécutée après doInBackground(). La raison pour laquelle elle n'est pas appelée est qu'elle ne peut prendre que des paramètres Object, comme onPostExecute (Object .. args). Tout le code de réglage de mon image a été écrit dans onPostExecute().
Vous pouvez charger le ListView dans la méthode onPostExecute()
de votre AsyncTask. De cette façon, vous garantissez que la tâche asynchrone sera terminée avant le chargement de ListView.
Vous pouvez afficher un ProgressDialog pendant l'exécution de la tâche asynchrone pour indiquer à l'utilisateur que l'extraction de données est en cours.
Cela dépend de la ListAdapter
que vous utilisez, mais par exemple, si vous utilisez un ArrayAdapter
, je pense que vous pouvez simplement appeler ArrayAdapter.notifyDataSetChanged()
et il rechargera tous vous (visibles) vues en utilisant ArrayAdapter.getView()
.
Une option plus compliquée consisterait à enregistrer des références aux ImageView
s, mais ce serait un peu compliqué car les listes ne conservent que des vues pour les lignes de liste visibles.
J'utilise un BaseAdapter personnalisé pour ListView. Une classe titulaire est utilisée pour contenir les TextViews et ImageView. Y at-il de toute façon je peux passer l'Image Uri. merci d'avance –
En fait il y a 'BaseAdapter.notifyDataSetChanged()'. Appelez ça. – Timmmm
- 1. Android: Création de ListView personnalisé avec SQLite
- 2. Android listview - Get texte de listview personnalisé
- 3. Android ListView ID personnalisé
- 4. Android listview personnalisé
- 5. Personnalisé ListView dans Android
- 6. Android Personnalisé ListView
- 7. ListView avec adaptateur personnalisé
- 8. Android ListView personnalisé avec des sections
- 9. Android remplir listView avec ArrayAdapter personnalisé
- 10. Android, des problèmes avec listview personnalisé
- 11. Android JSON ListView personnalisé avec Webview
- 12. Élément ListView personnalisé avec fil dans Android
- 13. android listview avec adaptateur personnalisé bloque l'activité
- 14. Comment créer un listview personnalisé dans Android
- 15. android personnalisé TextView dans ListView
- 16. ListView extensible avec adaptateur personnalisé
- 17. Personnalisé listview
- 18. ListView personnalisé avec Spinner
- 19. ListView personnalisé avec CheckBox
- 20. Reproduire Contact/cellules d'action de style sur un listview Android
- 21. Android listview (adaptateur de tableau) défilement personnalisé
- 22. ListView personnalisé avec problème de popup en android
- 23. ListView personnalisé avec l'article de taille différente Android
- 24. Android - L'adaptateur ListView personnalisé n'affiche pas d'objet
- 25. ListView & ListView personnalisé
- 26. barre de titre personnalisé avec ListView
- 27. android ListView avec checkBox
- 28. Remplissage ListView avec adaptateur personnalisé
- 29. Effectuez une action avec un champ de contact personnalisé
- 30. Comment faire une recherche ListView dans Android (Style du contact)
Merci pour la réponse, mais AsyncTask prend plus de 10 secondes à charger. Ce que j'ai à l'esprit est de montrer une icône de mannequin et plus tard, après AsyncTask finit, montrer un vrai –
Ce serait aussi une bonne option. –