ExpandableListView - Selektion des Eintrages

GENiALi

GENiALi

Fortgeschrittenes Mitglied
11
Hallo

Lange genug gesucht. Ich komme einfach nicht weiter.
Ich habe mir einen Adapter gebaut der von BaseExpandableListAdapter erbt. Den habe ich einem ExpandableListView angehängt. Soweit so gut. Ich will nun den selektierten Eintrag markieren, so das man sieht wo man aktuell steht. Genau das tut nur beschränkt.

Hier mal der Code wie das bei mir aussieht.
Code:
private void selectItem(int groupPosition, int childPosition) {
    if (childPosition > -1) {
        int index = expandableListView.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
        expandableListView.setItemChecked(index, true);
    } else {
        int index = expandableListView.getFlatListPosition(ExpandableListView.getPackedPositionGroup(groupPosition));
        expandableListView.setItemChecked(index, true);
    }
}
Solange ich nur auf den Nodes auf dem Root rumklicke entstehen keine Probleme. Funktioniert wie gewünscht.

Wenn ich einen Root-Node anklicke der Sub-Nodes hat tut das auch noch.

ABER, wenn ich dann einen anderen Root-Node anklicke der Sub-Nodes hat, dann passt absolut nichts mehr. Aber nur wenn man von oben nach unten arbeitet. Wenn man von unten nach oben arbeitet funktoniert es.

Von unten nach oben sieht der Inhalt von index korrekt und plausiebel aus. Von oben nach unten fällt der Index komplett aus dem tritt wenn ein Root-Node expandiert ist.

Was stimmt an dem Code noch nicht?
 
Zuletzt bearbeitet:

Ähnliche Themen

A
Antworten
1
Aufrufe
644
swa00
swa00
S
Antworten
11
Aufrufe
1.332
statik
S
L
Antworten
2
Aufrufe
973
louisbgt
L
Zurück
Oben Unten