Pregunta

He llenado una ListActivity de un Cursor usando SimpleCursorAdapter que comienza otra actividad cuando uno de los elementos de la lista se ha hecho clic. También estoy usando ViewBinder hacer alguna transformación personalizada de los datos.

Quiero añadir un CheckBox a cada fila de la lista, de modo que he cambiado la vista y añadido un CheckBox con la gravedad derecha.

La adición de la CheckBox ha eliminado la posibilidad de hacer clic en los elementos. El método onListItemClick me imperiosa de ListActivity ya no se llama cuando se pulsa sobre un elemento de la lista. Extracción de la CheckBox soluciona esto. ¿Por qué es esto?

Además, ¿cómo puedo configurar la lista para que se sigue llevando a cabo mi funcionalidad requerida si se hace clic en la parte principal del elemento de la lista, sino que tenga una funcionalidad adicional cuando se comprueba el CheckBox en el artículo? Será el establecimiento de una obra onCheckedChangedListener o se vuelve a utilizar la misma instancia de vista para cada elemento de la lista?

¿Fue útil?

Solución 2

Parece que SimpleCursorAdapter es demasiado primitiva para lo que quería lograr. He cambiado a la implementación de CursorAdapter y devolviendo una nueva vista utilizando el LayoutInflater en mi aplicación del método newView.

  public View newView(Context context, Cursor cursor, ViewGroup parent) {
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
  }

En Bindview Me continuación, establezca un OnClickListener encargo a mi LinearLayout principal y luego otro OnCheckedChangeListener a la CheckBox.

Para que todo esto se ve bien que tenía que poner el fondo de la LinearLayout a Android de MENUITEM dibujable:

android:background="@android:drawable/menuitem_background"

Otros consejos

Como se explica aquí , el detector de clics sólo funciona si no hay otro punto de vista es focusable. El establecimiento de su CheckBox a focusable="false" debe hacer el truco:

<CheckBox android:focusable="false" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top