2009-11-05 18 views
5

Estoy tratando de poner una casilla de verificación en ExpandableListView. ¿Cómo puedo hacer eso? Extiendo BaseExpandableListAdapter y poner el siguiente en getGroupView():Android - Bloques CheckBox ExpandableListView.OnGroupClickListener

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
    ViewGroup parent) { 
    View view = convertView == null ? 
     context.getLayoutInflater().inflate(R.layout.onet_head, null) : convertView; 
    ((TextView)view.findViewById(R.id.onetText)).setText(cats.get(groupPosition).value); 
    return view; 
} 

en cuenta que infla el diseño? Ahí es donde pongo TextView y CheckBox. Observé que al colocar una casilla de verificación en el diseño de mi fila de grupo, se deshabilita la funcionalidad de fila de grupo predeterminada al hacer clic en la fila para que aparezca una lista secundaria (secundaria). CheckBox está funcionando como se esperaba, pero cuando hago clic fuera de él, el identificador de casilla de verificación o OnGroupClickListener nunca detecta el clic. Sospecho que al colocar CheckBox en la fila del grupo de esta manera interfiere con la detección/manejo del evento pero hasta ahora no he podido rastrearlo

¿Puede alguien ayudarme a resolver esto? El CheckBox funciona bien, incluyendo la detección de clics cuando hace clic directamente en el cuadro

Respuesta

10

Cada vez que coloca un elemento que se puede enfocar en una lista, los elementos de la lista ya no responden a clics ni nada por el estilo. Para cada elemento que coloque en el elemento de la lista que sea enfocable (botones, casillas de verificación, etc.), debe configurar el atributo android: enfocable en falso.

Tenía una pregunta similar y esa fue la respuesta para mí. Android custom ListView unable to click on items

+0

Matt! Muchas gracias, esto de hecho resolvió el problema – Bostone

+0

Mi placer. Este me volvió loco durante mucho tiempo. – MattC

+0

Este tipo de cosas hacen que el desarrollo de Android sea frustrante. (Y TAN invaluable :) – Nilzor