Question

J'ai essayé d'ajouter ces points de vue à l'aide de liste ce genre de usine, mais chaque fois que j'essaie et ajouter la en vue d'une ListActivity, il arrive avec rien. Qu'est-ce que je fais mal? Je mis mon point de vue de la liste comme ceci:

 List<View> views = new ArrayList<View>();
 for(int x =0;x<tagg_views.size();x++){
      lv.addHeaderView(views.get(x));
 }
Était-ce utile?

La solution

Il semble que vous essayez d'ajouter x nombre de têtes à votre ListView. Cela n'a pas de sens.

Un ListView doit contenir un nombre x de copies du même point de vue, avec des informations différentes sur chaque ligne.

Bonjour ListView donne un bon exemple de la bonne l'utilisation d'un ListView.

Autres conseils

Pourquoi êtes-vous d'ajouter les vues à la liste vous-même? Je recommande fortement d'utiliser tout type de apropriate Adapter pour la liste. L'adaptateur se chargera de la création et le recyclage des vues pendant que l'utilisateur défile etc. Si vous utilisez un adaptateur, il est déconseillé d'enregistrer des références à la vue vous comme vous le faites dans la liste des vues.

Le addHeaderView méthode que vous utilisez est fait pour un en-tête unique à la liste qui apparaîtra toujours sur le haut de la liste. Ce moyen d'appel dans une boucle ne sera pas un résultat raisonnable.

Regardez dans le helloListView exemple Mayra mentionne comprendre comment une liste android fonctionne. Pour voir comment fonctionne listadapter sur mesure ont un oeil à cette tutoriel semble prometteur malgré le mauvais formatage du code.

A ListView est liée à et l'adaptateur. L'adaptateur est responsable des données affichées dans le ListView. Prendre en compte en interne ListView crée un pool de itmes (ou un pool pour chaque type d'élément qui peut être affiché dans votre cas).

Pour cela vos besoins d'adaptation pour mettre en œuvre les méthodes suivantes:

  • int getItemViewType (int Position): Obtenez le type de vue qui sera créé par getView (int, Vue, ViewGroup) pour l'élément spécifié. Donc, vous devez vous identifier les types.
  • int getViewTypeCount (): Renvoie le nombre de types de vues qui seront créés par getView (int, Vue, ViewGroup). Il est utilisé pour créer un pool pour chaque type d'élément.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top