Je veux faire un ArrayAdapter
pour afficher une image et du texte. Je ne veux pas d'exemples si possible. J'aimerais que quelqu'un m'explique le fonctionnement de getView()
.
Merci.
getView()
est la partie principale de votre adaptateur. Il renvoie View
qui sera affiché comme votre liste/grille/gallary/n'importe quelle vue qui utilise un élément adaptateur. Il se déclenche lorsque vous faites défiler la vue (liste par exemple).
La première chose à faire est donc de créer votre adaptateur personnalisé. Vous pouvez l'étendre à partir de BaseAdapter
. Ensuite, vous devez créer des données à afficher (ou les transmettre à l'adaptateur de l'extérieur - sa meilleure solution).
Après cela, remplacez la méthode getView()
et assurez-vous d'y retourner votre vue personnalisée. Dans votre cas, ce doit être un Layout
avec ImageView
et TextView
(et n'oubliez pas de les remplir).
Vous pouvez en savoir plus sur:
dans BaseAdapter
vous avez une fonction getView
qui est appelée par pour une AdapterView
c'est-à-dire ListView
.
vous devez remplacer la méthode getCount
du BaseAdapter pour renvoyer le nombre total de vues à afficher.
Et dans getView, vous obtenez les choses suivantes:
public View getView(int position, View convertView, ViewGroup parent)
position:
getView va être appelé pour chaque position à chaque fois qu'il est affiché.
convertView
Comme getView
est appelé plusieurs fois, gonfler une nouvelle vue à chaque fois est cher, la vue liste vous offre donc une des vues créées précédemment à réutiliser.
parent
Une référence à la vue parent dont cette vue sera un enfant.
ArrayAdapter
est une sous-classe de BaseAdapter
qui prend ArrayList
(ou tableau) dans le constructeur. Et remplace getCount
pour vous.
Donc, tout ce dont vous avez besoin pour implémenter est getView