2013-02-28 2 views
4

Dans mon ListView mon élément de la liste ci-dessous a vue commeListView lorsque l'option de liste a le bouton onListItemClick ne fonctionne pas

ceci est ma mise en page row.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/Peru" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/et_back_yellow" 
     android:orientation="horizontal" > 

     <ImageButton 
      android:id="@+id/ib_edit" 
      android:layout_width="35dp" 
      android:layout_height="30dp" 
      android:layout_marginBottom="5dp" 
      android:layout_marginLeft="5dp" 
      android:layout_marginTop="5dp" 
      android:layout_weight="1" 
      android:background="@drawable/ib_selector" 
      android:contentDescription="@string/edit" 
      android:src="@drawable/edit" /> 

     <TextView 
      android:id="@+id/tv_date" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="100" 
      android:gravity="center_vertical|center_horizontal" /> 

     <TextView 
      android:id="@+id/tv_time" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="100" 
      android:gravity="center_vertical|center_horizontal" /> 

     <ImageButton 
      android:id="@+id/ib_delete" 
      android:layout_width="35dp" 
      android:layout_height="30dp" 
      android:layout_marginBottom="5dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginTop="5dp" 
      android:layout_weight="1" 
      android:background="@drawable/ib_selector" 
      android:contentDescription="@string/edit" 
      android:src="@drawable/delete" /> 
    </LinearLayout> 

    <EditText 
     android:id="@+id/et_note" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/title" 
     android:layout_alignRight="@+id/title" 
     android:layout_below="@+id/title" 
     android:layout_marginTop="5dp" 
     android:ems="10" 
     android:inputType="textMultiLine" 
     android:background="@color/yellow"> 

     <requestFocus /> 
    </EditText> 

</RelativeLayout> 

Lorsque je clique sur un élément de liste du La méthode onListItemClick ne fonctionne pas.Mais quand je supprime les boutons forment row.xml cela fonctionne.Peut-on m'aider.Merci à l'avance.

+1

afficher le bouton code de clic. – Raghunandan

+0

Veuillez poster un code Java pour votre activité –

Répondre

0

Vous ne pouvez pas avoir les deux onItemClick et onClick sur une vue enfant pour un ListView comme indiqué here. Le Button est le focus et cliquez sur activé, ce qui provoquera le onItemClick à ne pas déclencher.

+0

Incorrect. Vous pouvez implémenter 'onClick' pour certains enfants' View's tout en utilisant 'onItemClick' sur tout l'élément' ListView'. –

+0

La réponse de Romain Guy est correcte dans le contexte de la question. Lisez aussi le commentaire de Delyan sur sa réponse, il a été capable de le faire. Je l'ai fait plusieurs fois. –

0

La raison du prblem que je pense est le poids de mise en page donné à l'imageButtons. Essayez donc de donner des poids à toutes les vues dans la disposition linéaire avec l'attribut weightSum à la linearLayout elle-même.

La raison pour laquelle clickListener ne fonctionne pas est que ImageButton se recouvre sur toute la largeur de la ligne et que l'élément n'a plus d'espace que le code d'écoute peut exécuter.

8

Utilisez cet attribut dans votre LinearLayout et RelativeLayout:

android:descendantFocusability="blocksDescendants" 
+0

Merci beaucoup Mon frère a fonctionné mais pourquoi nous avons utilisé cela seulement pour les dispositions linéaires et relatives? –

+0

Cela empêchera '' Button'' d'effectuer le focus, donc l'élément 'ListView' sera mis au point. Si cela a fonctionné, veuillez l'accepter comme réponse. –

Questions connexes