Quelle est exactement la fonction de la LayoutInflater?
Lors de la conception de l'utilisation de XML, tous vos éléments d'INTERFACE utilisateur sont seulement les tags et les paramètres. Avant de pouvoir utiliser ces éléments d'INTERFACE utilisateur (par exemple, un TextView ou LinearLayout), vous avez besoin pour créer des objets réels correspondant à ces éléments xml. Qu'est ce que le inflater. Le inflater, utilise ces balises et leurs paramètres correspondants pour créer des objets réels et de régler tous les paramètres. Après cela, vous pouvez obtenir une référence à l'élément d'INTERFACE utilisateur à l'aide de findViewById().
Pourquoi tous les articles que j'ai lu vérifier si convertview a la valeur null ou n'est pas la première? Que signifie le fait qu'elle est nulle et que signifie-t-il quand il ne l'est pas?
C'est une question intéressante. Vous voyez, getView() est appelée chaque fois qu'un élément de la liste est établie. Maintenant, avant de l'élément peut être établi, il doit être créé. Maintenant convertView, fondamentalement, est la dernière utilisée, en vue de dessiner un élément. Dans getView() vous gonflez le xml puis findByViewID() pour obtenir les différents éléments de l'INTERFACE utilisateur de la listitem. Lorsque nous avons vérifier (convertView == null) ce que nous avons à faire est de vérifier que si une vue est null(pour le premier point), puis de créer, d'autre, si elle existe déjà, réutiliser, pas besoin d'aller à travers le gonfler à nouveau. Il est beaucoup plus efficace.
Vous devez également avoir à venir à travers un concept de ViewHolder dans getView(). Cela rend la liste des plus efficace. Ce que nous faisons est de créer un viewholder et stocker la référence à tous les éléments de l'INTERFACE utilisateur que nous avons obtenu après gonflage. De cette façon, nous pouvons éviter d'appeler les nombreux findByViewId() et d'économiser beaucoup de temps. Cette ViewHolder est créé dans le (convertView == null) condition et est stocké dans le convertView à l'aide de setTag(). Dans la boucle, nous venons d'obtenir de retour à l'aide de getView() et de le réutiliser.
Qu'est-ce que le paramètre parent que cette méthode accepte?
Le parent est un ViewGroup à laquelle votre vue créée par getView() est enfin fixé. Maintenant, dans votre cas, ce serait la ListView.
Espérons que cela aide :)