这个问题已经多次,我搜索了很多,但几乎所有的解决方案都不适合我。我想选择列表视图的多个项目,并选择所选项目更改的颜色。即如果列表视图中有10个项目并且我选择了5个项目,则应更改这5个项目的颜色并使其处于焦点,以便我可以对它们执行操作。但是每个解决方案对我来说都不起作用,只有当前选定的项目发生了变化,但并非所有项目都集中在一起并发生变化。
我尝试了许多代码,这是其中之一:
<?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/normal_shape" />
<item android:state_pressed="true"
android:drawable="@drawable/gradient_bg_hover" />
<item android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/gradient_bg_hover" />
</selector>
gradient_bg_hover:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:startColor="#d9dd00"
android:endColor="#e6ea02"
android:angle="270" />
</shape>
normal_shape:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#fefeff"
android:startColor="#d5dbe7" />
<stroke
android:width="1dp"
android:color="#acd9dd" />
</shape>
在我的listview中是xml代码:
<ListView
android:id="@+id/messageList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:cacheColorHint="@null"
android:listSelector="@drawable/listsele"
android:layout_marginBottom="5dp" />
问题是什么?为什么我选择的项目没有聚焦而且没有改变颜色
答案 0 :(得分:0)
删除此行
android:cacheColorHint="@null"
并使用选择器作为背景