Aller au contenu

Listview : J'ai du mal à saisir comment "checker" l'élement


Burn2

Recommended Posts

Bonjour à tous et toutes, je suis encore une fois en galère complet. (décidément impossible pour moi de me faire à android et java...)

Donc voici le problème, je veux afficher une liste d'élément et un seul de ces éléments ne doit pouvoir être coché à la fois.

Donc qu'à celà ne tienne je google cherche des exemples et tombes là:

http://www.vogella.de/articles/Android/article.html

Qui a l'air pas mal fait.

Je fais mon exemple tout ça. ça marche (enfin à première vue). Comprendre j'arrive à récupérer l'élément cliqué, bref, comme dans l'exemple.

sauf que maintenant je voudrais pouvoir "checker" l'un des éléments. (bah vi c'est mieux pour une liste d'élément à checker)

Donc en toute logique voici ce que je fais:

public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
String[] names = new String[] { "Linux", "Windows7", "Eclipse", "Suse",
               "Ubuntu", "Solaris", "Android", "iPhone" };

       // Use your own layout and point the adapter to the UI elements which contains the label
       this.setListAdapter(new ArrayAdapter(this,
               android.R.layout.simple_list_item_single_choice, names));
       this.getListView().setItemChecked(1, true);
}


@Override
   protected void onListItemClick(ListView l, View v, int position, long id) {
       super.onListItemClick(l, v, position, id);
       l.setItemChecked(position, true);
       // Get the item that was clicked
       Object o = this.getListAdapter().getItem(position);
       String keyword = o.toString();
       Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG)
               .show();


   }


J'ai mis volontairement le " this.getListView().setItemChecked(1, true);" pour tester si ça venait de la méthode on clic ou autre, mais non il ne se passe rien! Rien n'est checké après un clic ni au lancement! Je ne comprends vraiment pas ce qui pourrait clocher. :/ Qu'est ce qu'il me manque pour que ça marche?

Encore une fois j'ai vraiment du mal dans ma logique. :(

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...