想给ListView设置一下颜色, 很自然的想到就在 res/color/ 目录下建立颜色选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/holo_red_dark" android:state_checked="true"/>
<item android:color="@android:color/holo_blue_bright" android:state_pressed="true"/>
</selector>
但后面发现无论是用listSelector属性还是用background, 运行时都会报错:需要drawable这个attribute。
最后是把selector建在了 res/drawable/ 目录下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/>
<item android:state_pressed="false" android:drawable="@color/blue"/>
<item android:state_checked="true" android:drawable="@color/azure"/>
<item android:state_selected="true" android:drawable="@color/azure"/>
</selector>
这样就可以直接使用了。 当然还可以进一步,在style文件里引用上述:
<style name="MyList" parent="android:style/Theme.Holo.Light">
<item name="android:background">@drawable/list_color</item>
</style>
ListView 设定选中项的颜色:
在Adapter的getView里加入代码即可。