android listView 改变选中行的 背景颜色,字体颜色,和 图片

 我来答
幻想流逝
推荐于2017-12-15 · TA获得超过1743个赞
知道大有可为答主
回答量:642
采纳率:75%
帮助的人:562万
展开全部

这种情况还是用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="@color/bg_color" 上面图片有点问题。 这样。要抱错



追答

不好意思,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判断搞定的,感觉还有更好的写法,所以就不发出来了


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式