web-dev-qa-db-fra.com

Comment fonctionne la méthode getView () d'ArrayAdapter?

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.

40
Alex Moreno

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:

24
Yakiv Mospan

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) 
  1. position:

    getView va être appelé pour chaque position à chaque fois qu'il est affiché.

  2. 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.

  3. 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

10
vipul mittal