SimpleExpandableListAdapter getGroupView macht Probleme

  • Antworten:4
Stefan A
  • Forum-Beiträge: 18

29.03.2012, 10:49:43 via Website

Hallo,
ich habe einen ganz einfachen SimpleExpandableListAdapter erweitert in MyAdapter.

Hierbei habe ich folgende Zeile definiert:
1public View getGroupView(int groupPosition, boolean isExpanded,View convertView,
2 ViewGroup parent) {
3 View view = super.getGroupView(groupPosition, isExpanded, convertView, parent);
4 LinearLayout lin = (LinearLayout) view;
5 TextView text = (TextView) lin.findViewById(R.id.tv_parents1);
6
7 if(text.getText().toString().equals("Tag 4")) {
8
9 view.setBackgroundColor(Color.YELLOW);
10 }
11
12
13 return view;
14 }

Leider wird nicht nur die Zeile, welche die Textview mit dem Text "Tag 4" beinhaltet eingefärbt, sondern immer auch eine andere Zeile.
Kann mir jemand erklären warum dies so ist?

Ich habe nicht mehr Code in meiner Adapter Klasse.

Vielen Dank.
Gruß
mc

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.03.2012, 11:16:28 via Website

1View view = super.getGroupView(groupPosition, isExpanded, convertView, parent);


solltest du nicht an der stelle dein eigenes layout infalten ?

swordiApps Blog - Website

Antworten
Florian B.
  • Forum-Beiträge: 284

29.03.2012, 11:42:01 via Website

Stefan Amann

Leider wird nicht nur die Zeile, welche die Textview mit dem Text "Tag 4" beinhaltet eingefärbt, sondern immer auch eine andere Zeile.
Kann mir jemand erklären warum dies so ist?

Da ja die einzelnen Views der Listeneinträge teilweise wiederverwendet werden von Android, könnte ich mir vorstellen, dass dies die Ursache für ein Problem sein könnte. Füge deinem if-Statement, dass für das Einfärben zuständig ist, doch mal noch einen else-Zweig hinzu, indem die Farbe wieder auf deinen Ausgangswert gesetzt wird. Tritt das Problem direkt beim Darstellen der Liste auf, oder erst wenn du die Liste gescrollt hast?

Markus Gu
1View view = super.getGroupView(groupPosition, isExpanded, convertView, parent);
solltest du nicht an der stelle dein eigenes layout infalten ?

Das passiert doch implizit durch die Basis-Implementierung von getGroupView(), oder irre ich mich da gerade?

Antworten
Stefan A
  • Forum-Beiträge: 18

29.03.2012, 11:42:37 via Website

Aber ich benötige doch gar kein neues Layout. Ich will doch nur, einzelne Zeilen, aufgrund ihren Inhalts anders darstellen? Oder verstehe ich das ganze falsch?

Edit: Ok hat mit dem else geklappt. Vielen Dank für eure Antworten.

— geändert am 29.03.2012, 11:45:08

Antworten
Florian B.
  • Forum-Beiträge: 284

29.03.2012, 11:45:26 via Website

Ich denke auch, dass das eigentlich passen sollte.

Antworten