原理,在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" />