Android-Selektor für das gewählte Element nicht funktioniert

Ich habe eine listview, wo ich will, zu markieren ausgewählten Elemente in einem benutzerdefinierten Weise. Ich bin der Einstellung jedes Element Eigenschaften des Adapters getView Methode, einschließlich itemView.setSelected(true).

Den Haupt-layout definiert die listview in der folgenden Weise:

<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="multipleChoice"
android:listSelector="@drawable/list_selector" />

Spielen(mit Wahl-Modus hilft auch nicht).

Den list_selector ist ein fast leerer stub:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@android:color/transparent" />
</selector>

Brauche ich nicht bestimmte Stile, die für das listview-Steuerelement als ganzes, also würde ich lassen eine Voreinstellung, die aber nach diese Antwort, wir brauchen einen Selektor für ein listview-Element-Selektor zu arbeiten. Trotzdem, ohne die list_selector das problem bleibt.

Dem listview-Element layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:background="@drawable/listitem_background"
    android:orientation="vertical">

und es verweist auf die folgenden listitem_background selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@android:color/white" />
    <item android:drawable="@android:color/transparent" />
</selector>

Das problem ist, dass die ausgewählten Elemente haben keine weißen hintergrund.

Wenn ich android:state_selected="true" Selektor in der listitem_background, zum Beispiel android:state_pressed="true", dann wird der Selektor zu arbeiten beginnt, ist das Element hintergrund wird weiß, wenn ein Gegenstand berührt wird.

So, ich nehme an, es ist ein Fehler entweder in der Selektoren, oder in der Weise wie ich die Elemente auswählen.

Kann ich schreiben Sie eine Problemumgehung, indem Sie die Einstellung hintergrund von Java oder Nutzung überprüfbar Staaten, aber ich möchte verstehen und beheben aktuelle problem mit den Selektoren. Vielen Dank im Voraus.

InformationsquelleAutor Stan | 2013-04-01
Schreibe einen Kommentar