Как работать с Selector Listview в Android? - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть файл lst_custom_view.xml

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top|left"
        android:background="@drawable/list_choose"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center"
            android:layout_marginLeft="20dp"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:textColor="#ff000000"
            android:textSize="22dp" />
    </RelativeLayout>

И Listview в Main.xml

<ListView
                    android:id="@+id/lstView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_weight="1"
                    android:background="@android:color/transparent"
                    android:cacheColorHint="@android:color/transparent"
                    android:divider="@drawable/menu_phancach"
                    android:dividerHeight="2dp"
                    android:visibility="visible">
         </ListView>

Я использую селектор с фономRelativeLayout с именем list_choose.xml

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

это показывает мне фон RelativeLayout menu_content_hover, когда я нажимаю на просмотр списка элементов, но не выбран с фоном menu_content_hover.Я хочу изменить фон menu_content_hover, когда пользователь нажимает на элементы и выбрал , изменить фон меню menu_content, когда пользователь прокручивает список (не выбран), или выбирать другие элементы. Я использовал simpleCursorAdapter.Любая помощь?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 04 декабря 2011

Селектор должен быть таким:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" 
        android:drawable="@drawable/background_pressed" />
    <item android:state_focused="true"
        android:drawable="@drawable/background_focused" />
    <item android:state_selected="true" 
        android:drawable="@drawable/background_selected" />
    <item android:drawable="@drawable/background_default"/>

</selector>
...