2016-08-05 2 views
0

J'ai un ListView avec un adaptateur personnalisé qui remplit des articles avec un EditText et un TextView:ListView avec EditText et OnItemClickListener

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/et_choice_prob" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="numberSigned"/> 

    <TextView 
     android:id="@+id/tv_choice_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/et_choice_prob" 
     android:layout_alignBaseline="@id/et_choice_prob" 
     android:layout_marginLeft="5dip" 
     /> 


</RelativeLayout> 

Si je veux mettre un OnItemClickListener il ne fait jamais appelé, en raison du vol EditText la mise au point.

Un autre thread mentionné que je devrais définir focusable à false, ce qui supprimera la possibilité d'éditer réellement le TextView.

J'ai également essayé de définir descendantFocusability du ListView à n'importe quelle option disponible sans succès.

L'adaptateur ne fait rien d'extraordinaire, mais je fournirai la source sur demande. Tout le reste est fait de la même manière sur un autre ListFragment et fonctionne.

+1

avez-vous essayé d'ajouter onclicklistener sur chaque enfant de votre vue? http://stackoverflow.com/a/6090713/2667946 – JulienGenoud

+0

Ouais ... je suis déjà en train de trouver ce genre de solution personnalisée. Mais ça me gêne vraiment pourquoi ce stupide 'OnItemClickListener' n'a pas déclenché –

Répondre

1

Essayez d'ajouter ce code dans yout EditText tag

android:focusable="true" 
android:focusableInTouchMode="true" 
+0

Nope, ne fait pas la différence –

0

Set setOnClickListener pour RelativeLayout en gonflant les vues d'éléments de la liste dans la méthode getView de votre adaptateur. Votre EditText ne correspond pas avec parent donc cela doit être travail lorsque vous cliquez sur l'autre côté de la ligne de la liste.

+0

effectivement la même solution que dans le premier commentaire sur la question de @JulienGenoud –