2011-09-11 4 views
0

J'ai un ListView qui est tout simplement peuplé cette façon:Comment définir un thème à un Listview peuplé de setListAdapter

setListAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_multiple_choice, aux)) 

« aux » c'est static String[] aux = null; qui est peuplé via le service Web.

J'ai fait un thème et testé avec des éléments listview statiques, fichier lista.xml -> vous pouvez le voir here (si vous regardez dans le bas, vous verrez que je mets "liste élément 1, liste élément 2", donc je besoin de peupler ces valeurs dinamically ...)

Ma question est, comment puis-je appliquer le thème à mon adaptateur de liste?

Je crois que je commence avec:

setListAdapter (nouveau ArrayAdapter (ce, R.layout.lista, aux))

Mais j'ai deux problèmes.

(1) Je ne sais pas comment travailler avec XML et remplir de java (setlistadapter) (2) Je crois que je vais perdre des cases à cocher.

Cependant, j'apprécie si quelqu'un peut aider à (1) d'abord :) Je ne sais vraiment pas ce que je fais maintenant!

Répondre

1
setListAdapter(new ArrayAdapter(this, R.layout.lista, aux)) 

est le début, vous avez raison, mais quand vous voulez une coutume ListItem mise en page vous devez écrire un ListAdapter personnalisé. Vous extend ArrayAdapter<YourItemClass> par exemple. Là, vous remplacez la méthode getView() et dans cette méthode vous remplissez votre mise en page personnalisée avec vos valeurs de vos objets Aux.

pour un ArrayAdapter vous devez définir un identifiant dans votre mise en page pour vos articles listview

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:id="@+id/textview" android:layout_weight="1"> 

</TextView> 

avec id/textview vous que votre listAdapter à rendre dans cette vue.

éditer: oh et vous devez apprendre et obéir au concept de support des listes. ici: How to load the Listview "smoothly" in android

+0

Merci pour votre aide, mais j'ai un problème ... Sur la base de votre suggestion, je remplace rapidement le android: texte pour android: id (comme vous le dites), et a dû remplacer l'adaptateur pour setListAdapter (nouveau ArrayAdapter (ceci, R.layout.lista, R.id.textview, aux)); La chose est la suivante: pour chaque élément listview, tous les autres éléments de la mise en page sont créés, donc tout est foiré. Comment puis-je resoudre ceci? – Tiago

+0

Peut-être que votre modèle de données sous-jacent est un objet "tout en un", vous devez donc définir la méthode getItem (int) dans votre ListAdapter personnalisé. Dans cette méthode, vous définissez comment obtenir un élément de votre ItemObject (aux). – Michele

+0

J'ai compris, merci! – Tiago

Questions connexes