android listView 改变选中行的 背景颜色,字体颜色,和 图片
这种情况还是用selector吧,把你setTextColor的方法删掉
修改你的tuijian_building_listview_row的xml文件,最外层background属性这么设置
android:background="@color/list_item_bg_selector"
tvTJCustomName和tvTJCustomPhone的textColor属性这么设置
android:textColor="@color/text_color_selector"
在res目录下,新建color子文件夹,在里面创建list_item_bg_selector
.xml文件和text_color_selector.xml文件,除了颜色值,其他内容一样(颜色值我随便写的,你根据需要的效果自己改)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--被选中时的颜色-->
<item android:state_selected="true" android:color="#333333" />
<!--获得焦点时的颜色-->
<item android:state_focused="true" android:color="#333333" />
<!--点击时的颜色-->
<item android:state_pressed="true" android:color="#333333" />
<!-- 默认颜色 -->
<item android:color="#66666"/>
</selector>
如果要修改背景图片也大同小异,关于selector的详细说明请自行百度
不好意思,android:background报错是我的写法有问题,改成
<item android:state_selected="true" android:drawable="#333333" />
<!--获得焦点时的颜色-->
<item android:state_focused="true" android:drawable="#333333" />
<!--点击时的颜色-->
<item android:state_pressed="true" android:drawable="#333333" />
<!-- 默认颜色 -->
<item android:drawable="#666666"/>
就可以了。
后来我研究了一下,用selector改ListView的背景是很方便的,在listview的xml布局中设置android:listSelector属性就行,但字体颜色我试了几种方法都有问题,最后还是用的if判断解决了,附上Demo,只供参考。
PS:你图上的那种效果用的是ListView + RadioButton,我也试了,不过在单选问题上也是用if判断搞定的,感觉还有更好的写法,所以就不发出来了