2011-12-18 20 views
6

tengo una lista de tareas, y han definido cada elemento de la lista de la siguiente manera list_item.xmlCheckBox elemento Haciendo ListView no se puede hacer clic

<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> 

El elemento de la lista resultante es el siguiente:

item

El problema es que con el CheckBox en el xml, no puedo seleccionar ningún elemento de la lista. Al hacer clic en el elemento de la lista, debe llamar aListItemClick, pero no hace nada. Si añado

androide: la visibilidad = "ido"

Para la casilla de verificación, soy capaz de hacer clic elementos que me plazca. ¿Por qué el CheckBox está arruinando esta habilidad?

Respuesta

24

La clave para resolver esto es agregar el atributo

android:focusable="false" 

a la casilla de verificación. Una vez que se haya agregado esto, CheckBox dejará de robar la capacidad de clics de los elementos de la lista, y podrá tocar el cuadro de verificación y seleccionar elementos individuales de la lista.

Cuestiones relacionadas