2011-06-08 2 views
10

Mon problème vient de ListView. Sans boutons, le .setOnItemClickListener du ListView fonctionne bien. (Démarrer une activité)Android: ListView avec boutons -> OnItemClick ne rien faire

Au moment que j'ajouter des boutons en éléments de ListView, boutons sont cliquables mais les articles ne sont pas plus cliquable ...

J'essaie d'utiliser myListView.setItemCanFocus(true); mais il ne fonctionne pas ...

+0

Je ne peux pas vous poser de question. Les boutons sont cliquables, quand vous ajoutez onClickListener et les éléments quand setOnItemClickListener. Pouvez-vous expliquer plus précisément ce que vous avez ajouté et où? – Stuti

+0

Avoir des boutons dans une liste de visualisation sonne bizarre. Avez-vous pensé à utiliser un menu contextuel à la place? –

+0

@Stuti: Et je ne peux pas obtenir votre écriture. Pourriez-vous s'il vous plaît écrire "vous" au lieu de "u"? Nous devrions garder la langue propre ici. Merci – WarrenFaith

Répondre

0

Vous pouvez l'utiliser dans .setOnItemClickListener de ListView

view.findViewById(R.id.btn_id).setOnClickListener(new View.OnClickListener(){//your method}) 
2

Il pourrait être préférable d'utiliser un rappel pour le bouton cliquable OnTouch() dans le listview. Vous devriez alors pouvoir cliquer sur l'élément de la liste et sur le bouton. Voir this question pour du code (pas besoin de touchDelegate).

2

La raison en est que le bouton dans votre listview absorbe l'onItemClickEvent.

Un bien expliqué tutoriel est here

34

Supprimez l'attribut focusable du bouton résoudrait ce problème. Vous pouvez le faire dans un fichier XML de mise en page ou dans un code source Java.

Et encore une astuce, si vous utilisez ImageButton au lieu de Button, vous avez besoin de setFocusable dans votre code java pour que cela fonctionne, car le constructeur de ImageButton ajoutera cet attribut après gonflement du fichier xml.

+2

Vous venez d'enregistrer ma journée. Merci beaucoup!!! –

+0

C'est génial. Bien plus vite que les autres travaux. Merci! Pour ceux qui ne savent pas comment faire, ajoutez simplement android: focusable = "false" à votre bouton dans votre fichier XML. –

+0

Merci beaucoup !!! Pour les lecteurs: pour le bouton c'est une vraie solution, je le vérifie. – DenisMath

Questions connexes