2011-12-18 20 views
6

Ho un elenco di attività, e hanno definito ogni elemento della lista in list_item.xml come segueCheckBox voce Fare listView non cliccabile

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

<ImageView 
    android:id="@+id/list_overdue_pic" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:background="@drawable/overdue" 
    android:visibility="invisible" /> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:padding="5dp" > 

    <CheckBox 
     android:id="@+id/list_done" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:paddingRight="5dp" 
     android:gravity="center_vertical" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/list_done" 
     android:orientation="vertical" > 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/list_title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingRight="10dp" 
       android:textColor="@color/white" 
       android:textSize="18dp" 
       android:textStyle="bold" /> 

      <ImageView 
       android:id="@+id/list_note_pic" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:layout_toRightOf="@+id/list_title" 
       android:background="@drawable/note" /> 
     </RelativeLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/list_prio" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="17dp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/list_due_date" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="17dp" 
       android:visibility="gone" /> 

      <TextView 
       android:id="@+id/list_calendar" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="17dp" 
       android:visibility="gone" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/list_note" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textSize="15dp" /> 
    </LinearLayout> 
</RelativeLayout> 

La voce lista risultante è simile al seguente:

item

Il problema è che con il CheckBox in xml, non riesco a selezionare alcun elemento della lista. Cliccando sulla voce di elenco dovrebbe chiamare onListItemClick, tuttavia non fa nulla. Se aggiungo

android: visibility = "andato"

alla casella di controllo, sono in grado di fare clic su oggetti come mi pare. Perché il CheckBox rovina questa abilità?

risposta

24

La chiave per risolvere questo è di aggiungere l'attributo

android:focusable="false" 

alla casella di controllo. Una volta aggiunto, il CheckBox smetterà di rubare la possibilità di fare clic sugli elementi dell'elenco e potrai toccare entrambi i CheckBox e selezionare i singoli elementi dell'elenco.

Problemi correlati