ListView mehrfache Auswahl kein highlighting

  • 6 Antworten
  • Letztes Antwortdatum
F

Feuerstern

Fortgeschrittenes Mitglied
28
Hallo Leute
Ich habe ein Fragment in dem ich eine ListView habe. Diese setzte ich mit setChoiceMode auf multiple und modal. Das klappt auch alles gut, nur ändert sich der Hintergrund der ausgewählten Items leider nicht. Was kann ich tuhen?
In der OnCreateView Methode(der Adapter ist bereits in der Klasse deklariert mit AdapterDeposit adapter ):
Code:
        adapter = new AdapterDeposit();
        depositsList.setAdapter(adapter);
        depositsList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
ich freue mich über Hilfe
mfg Feuerstern

EDIT:
Habe eine Lösung gefunden.
Im adpter der ListView habe ich folgenden Code in die getView() Methode hinzugefügt:
Code:
if (selectedItemsIds.get(position))
        view.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
else
        view.setBackgroundColor(getResources().getColor(android.R.color.transparent));
selectedItemsIds ist ein SparseBooleanArray das die Informationen darüber enthält welche Items der Liste ausgewählt sind.
 
Zuletzt bearbeitet:
Kannst du das nicht schöner über einen Selector regeln?

lg. Dagobert
 
  • Danke
Reaktionen: Feuerstern
Danke für deine Antwort.
Wenn ich setSelector(android.R.color.holo_blue_bright) auf die ListView anwende werden auch einfache Auswahlen mit dem Hintergund angezeigt. Es sollen aber nur die angezeigt werden die mit einem langen drücken ausgewählt wurden. (Nachdem einmal nach einem langen drücken ein Item ausgewählt wurde,sollen die anderen ganz normal ausgewählt werden.)
 
Danke für deine Antwort.
Ich habe jetzt in der getView() meines adapter folgendes:
Code:
itemView.setBackgroundResource(R.drawable.listselector);
Und im Ordner drawable:
Code:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="false" android:drawable="@android:color/transparent"/>
    <item android:state_activated="true" android:drawable="@android:color/holo_blue_light"/>
</selector>
Ist das so in Ordnung?
mfg Feuerstern
 
Murdock1 schrieb:
Ich bin zwar nicht ganz sicher, würde aber eher state_checked probieren.

StateListDrawable | Android Developers
Mit state_checked funktioniert es nicht. Hatte ich auch erst probiert ohne das gewünscht Ergebnis zu erzielen. Ein bisschen Recherche hat aber ergeben das state_activated den richtigen Effekt erzielt. :smile:
 
Zurück
Oben Unten