46 votes

ListView avec un widget cliquable / éditable

Est-il possible d'utiliser un OnItemClickListener sur un ListView lorsque la disposition des éléments a un widget cliquable / modifiable (RadioButton, EditText ou CheckBox)?

69voto

Samuh Points 16564

Vous voudrez peut-être jeter un oeil à ce problème. Avoir un peut recevoir le focus d'un élément dans une rangée d'un ListView provoque l' OnItemClickListener de ne PAS être invoquée. Toutefois, cela ne signifie pas que vous ne pouvez pas avoir focusable/cliquables éléments dans une ligne, il ya quelques solutions de contournement comme cette une.

Aussi, vous pouvez prendre un coup d'oeil sur les Journaux d'Appels de l'écran. Il a un ListView avec élément cliquable(l'icône d'appel sur la droite). Voir le code Source ici

21voto

khalid13 Points 731

Citant le commentaire n ° 31 dans le lien mentionné par Samuh (qui a résolu le problème pour moi):

En fait, vous pouvez l'ajouter à la mise en page XML (si gonflé par un): android: descendantFocusability = "blocksDescendants".

Ajoutant ici JIC cette page Web est en panne dans le futur.

12voto

sunshine Points 3779

Si un élément de ligne de la liste contient une vue activable ou cliquable, OnItemClickListener ne fonctionnera pas.

un élément de ligne doit avoir des paramètres tels que android:descendantFocusability="blocksDescendants"

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:descendantFocusability="blocksDescendants"
    android:gravity="center_vertical" >

    // your other widgets here

</LinearLayout>
 

3voto

Henrique Sousa Points 363

Essayé de nombreuses solutions complexes, mais c’est la plus simple qui a fonctionné:

android: focusable = "false"

 <CheckBox
    android:id="@+id/fav_check_box"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false" />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X