0%

Android开发 更改ListView某项被点中后的背景色(单选模式)

原理,在adapter的getView方法里根据当前选中项的索引,设置背景色。在ListView的OnItemClickListener里修改adapter中选中的索引,再notifyDataSetChanged,adapter就会再次调用getView方法,更新显示 2013.08.19更新: 看了ApiDemo,发现一个更简单的方法: 设置ListView为单选模式

        <ListView
            android:id="@+id/lv_category"
            android:choiceMode="singleChoice"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:divider="@drawable/iv_left_item_separate_line" >
        </ListView>

设置Item的Layout的背景为一个Selector: bg_listview_item.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
    <item android:drawable="@color/transparent" />
</selector>



<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg_listview_item"
    android:gravity="center"
    android:minHeight="80dp"
    android:textColor="@color/black"
    android:textSize="26sp" />