2009-11-05 8 views
5

J'essaie de mettre une case à cocher dans ExpandableListView. Comment je fais ça? J'adresse BaseExpandableListAdapter et il faut mettre dans getGroupView():Android - blocs 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; 
} 

Notez que gonflé la mise en page? C'est là que je mets TextView et CheckBox. J'ai remarqué que le fait de placer une case à cocher dans ma disposition de lignes de groupe désactive la fonctionnalité de ligne de groupe par défaut lorsque le fait de cliquer sur la ligne fait apparaître une liste secondaire (enfant). CheckBox fonctionne comme prévu mais lorsque je clique à l'extérieur de celui-ci, le clic n'est jamais détecté par l'éther CheckBox ou par OnGroupClickListener. Je suspecte que placer CheckBox dans la rangée de groupe de cette façon interfère avec la détection/manipulation d'événement mais jusqu'ici je ne suis pas capable de le traquer

Can Quelqu'un peut-il m'aider à résoudre ceci? CheckBox fonctionne bien Le bien, y compris les clics détecter quand directement en cliquant sur la case

Répondre

10

Chaque fois que vous placez un élément qui est focalisable dans une liste les éléments de liste ne répondent plus aux clics ou quelque chose comme ça. Pour chaque élément que vous placez dans l'élément de liste qui peut être mis en focus (boutons, cases à cocher, etc.), vous devez définir l'attribut android: focusable sur false. J'ai eu une question similaire et c'était la réponse pour moi. Android custom ListView unable to click on items

+0

Matt! Merci beaucoup, cela a effectivement résolu le problème – Bostone

+0

Mon plaisir. Celui-ci m'a rendu fou pendant une longue période. – MattC

+0

Ce genre de trucs rendent le développement Android frustrant. (Et si précieux :) – Nilzor