2009-11-05 10 views
5

Ich versuche, ein Kontrollkästchen in ExpandableListView zu setzen. Wie mache ich das? Ich erweitere BaseExpandableListAdapter und setzen Sie die folgenden in getGroupView():Android - CheckBox Blöcke 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; 
} 

Beachten Sie, dass das Layout aufgeblasen? Dort setze ich TextView und CheckBox ein. Ich habe festgestellt, dass das Setzen eines Kontrollkästchens in mein Gruppenzeilenlayout die standardmäßige Gruppenzeilenfunktion deaktiviert, wenn Sie auf die Zeile klicken, um eine sekundäre (untergeordnete) Liste anzuzeigen. CheckBox funktioniert wie erwartet, aber wenn ich außerhalb des Fensters klicke, wird der Klick niemals von Ether CheckBox oder von OnGroupClickListener erkannt. Ich vermute, dass das Platzieren von CheckBox in der Gruppenzeile auf diese Weise die Ereigniserkennung/-behandlung stört, aber bis jetzt kann ich es nicht finden

Kann jemand mir helfen, dies zu lösen? Die CheckBox arbeiten jedoch in Ordnung einschließlich Erfassen Klicks, wenn direkt auf dem Feld

Antwort

10

Immer, klicken Sie auf ein Element platzieren, die nicht mehr in der Liste der Listeneinträge zu Klicks oder so etwas reagieren fokussierbar ist. Für jedes Objekt, das Sie in das fokussierbare Listenelement (Schaltflächen, Kontrollkästchen usw.) platzieren, müssen Sie das Attribut "android: focusable" auf "false" setzen.

Ich hatte eine ähnliche Frage und das war die Antwort für mich. Android custom ListView unable to click on items

+0

Matt! Vielen Dank, das hat das Problem gelöst – Bostone

+0

Mein Vergnügen. Dieser hat mich für eine lange Zeit verrückt gemacht. – MattC

+0

Diese Art von Gotcha machen Android-Entwicklung frustrierend. (Und so unschätzbar :) – Nilzor

Verwandte Themen