Selektor Android dla wybranego elementu nie działa

Mam widok listy, w którym chcę wyróżnić wybrane elementy w niestandardowy sposób. Ustawiam wszystkie właściwości elementu w karciegetView metoda, w tymitemView.setSelected(true).

Główny układ definiuje widok listy w następujący sposób:

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

(Tryb gry z wyborem też nie pomaga).

Thelist_selector to prawie pusty 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>

Nie potrzebuję konkretnych stylów do przeglądania listy jako całości, więc zostawiłbym domyślny, ale zgodnie zta odpowiedź, potrzebujemy selektora dla listview dla selektora elementów do działania. W każdym razie bezlist_selector problem pozostaje.

Układ elementu widoku listy:

<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">

i odnosi się do następującychlistitem_background selektor:

<?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>

Problem polega na tym, że wybrane elementy nie mają białego tła.

Jeśli się zmienięandroid:state_selected="true" selektor wlistitem_background na przykładandroid:state_pressed="true", następnie selektor zaczyna działać, tzn. tło elementu staje się białe, jeśli element zostanie dotknięty.

Tak więc przypuszczam, że występuje błąd w selektorach lub w sposobie, w jaki wybieram przedmioty.

Mogę napisać obejście, ustawiając tło z Javy lub używając stanów kontrolnych, ale chcę zrozumieć i naprawić bieżący problem z selektorami. Z góry dziękuję.

questionAnswers(2)

yourAnswerToTheQuestion