ListView Problem

  • 3 Antworten
  • Letztes Antwortdatum
P

papaloco

Neues Mitglied
0
Ich bin jetzt schon einige Zeit "Passiv-Nutzer" dieses Forums und habe hier sehr häufig Lösungen zu vergleichbaren Problemen gefunden.

Jetzt steh ich aber leider vor einer Hürde, die ich in der Form noch nicht hier im Forum gefunden habe.

In meiner ListView (9 Elemente) wird bei Click auf ein Item die Hintergrundfarbe geändert. Dies funktioniert auch soweit korrekt.

Leider wird bei Click auf das 1.,2.8. und 9. Item jeweils ein zweites Item gefärbt und zwar immer paarweise, also 1+8 und 2+9.

Code:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
            @Override
              public void onItemClick(AdapterView<?> arg0, View item, int position, long arg3) {          
             ChangeColor(item);
               alarm(position);  
}});
Code:
 public     void ChangeColor(View item) {
            if (previousitem != null) {
              previousitem.setBackgroundColor(Color.WHITE);
            }
            item.setBackgroundColor(Color.BLUE);
            previousitem =item;
          }
Wisst ihr, wie man dieses Problem vermeidet?
 
Es gibt zu jedem Eintrag der Liste einen eigenen View, da diese nach Belieben des Adapters recycelt werden.
Du musst dir einen eigenen Adapter bauen (klingt schwerer als es ist) und dann in getView die Behandlung der Hintergrundfarbe regeln.
 
Ich hoffe, ich habe das richtig verstanden:

ich muss den adapter, den ich im moment verwende, durch einen adapter, der nicht recyclet, ersetzen?
 
Sozusagen. Dein eigenet Adapter recyclet auch. Nur dass er vorher pruefen kann welche farbe er setzen soll...

Gesendet von meinem Nexus 10 mit der Android-Hilfe.de App
 
Zurück
Oben Unten