Z
Zoopa
Stammgast
- 178
Hallo zusammen
Ich entwickle momentan eine App und verwende dabei eine ExpandableListView. Num möchte ich auf Button-Clicks in den Child-Elementen der ExpandableListView reagieren. Dafür gibts den onChildClickListener, der mir eigentlich alle benötigten Parameter liefert.
Kurz zum Aufbau der App, damit der Ablauf etwas klarer wird:
Das Problem an der Sache ist, dass der Listener nie aufgerufen wird. Ich habe den Listener natürlich der ListView hinzugefügt:
Es gibt einige Threads bei Stackoverflow oder anderen Seiten zu diesem "Problem". Dort wird gesagt, dass die Child-Views selektierbar sein müssen, aber den Fokus nicht übernehmen dürfen. Beides bewirkt bei mir leider immernoch keine Lösung:
Es gab auch mal den Hinweis, dass zusätlich die Items nicht clickable sein sollten:
Aber egal ob ich nur die oberste View oder alle ändere: onChildClick wird nie gefeuert.
Testweise habe ich mal innerhalb des Adapters den ImageButtons direkt einen Listener hinzugefügt: dieser funktioniert korrekt. Weil die ExpandableListView aber bereits einen Listener dafür anbietet, wollte ich auch diesen nutzen.
Kennt jemand mal dieses Problem oder hat vielleicht eine Idee, an was es sonst noch liegen könnte?
Ich entwickle momentan eine App und verwende dabei eine ExpandableListView. Num möchte ich auf Button-Clicks in den Child-Elementen der ExpandableListView reagieren. Dafür gibts den onChildClickListener, der mir eigentlich alle benötigten Parameter liefert.
Kurz zum Aufbau der App, damit der Ablauf etwas klarer wird:
- Es gibt nur eine Activity mit einer ExpandableListView
- Die ListView zeigt standardmässig nur die Groups an, also die erste Schicht der Liste
- klickt man auf eine Group, klappt die Child-View aus
- Innerhalb der Child-View gibts mehrere ImageButtons -> Auf diese bezieht sich mein Problem
Das Problem an der Sache ist, dass der Listener nie aufgerufen wird. Ich habe den Listener natürlich der ListView hinzugefügt:
Code:
expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Log.d("ExpandableListView", "Child clicked. Position: " + childPosition);
return true;
}
});
Es gibt einige Threads bei Stackoverflow oder anderen Seiten zu diesem "Problem". Dort wird gesagt, dass die Child-Views selektierbar sein müssen, aber den Fokus nicht übernehmen dürfen. Beides bewirkt bei mir leider immernoch keine Lösung:
Code:
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
Code:
<LinearLayout
android:orientation="horizontal"
android:focusable="false">
<ImageView
android:focusable="false"
...
/>
<ImageButton
android:focusable="false"
...
/>
...
Es gab auch mal den Hinweis, dass zusätlich die Items nicht clickable sein sollten:
Code:
<LinearLayout
android:orientation="horizontal"
android:clickable="false"
android:focusable="false">
<ImageView
android:clickable="false"
android:focusable="false"
...
/>
<ImageButton
android:clickable="false"
android:focusable="false"
...
/>
...
Aber egal ob ich nur die oberste View oder alle ändere: onChildClick wird nie gefeuert.
Testweise habe ich mal innerhalb des Adapters den ImageButtons direkt einen Listener hinzugefügt: dieser funktioniert korrekt. Weil die ExpandableListView aber bereits einen Listener dafür anbietet, wollte ich auch diesen nutzen.
Kennt jemand mal dieses Problem oder hat vielleicht eine Idee, an was es sonst noch liegen könnte?