给listview的item设置背景颜色--工作中遇到什么难题,怎么解决的

昨天准备把2个activity通过fragment继承到一个里面, 左边的fragment是一个listview,右边的是左边某个项目的详细信息。

遇到的问题是当点击昨天某一个listview的时候把背景设置成高亮或者改变背景颜色, google提供的fragment例子上是有个这个功能的。但是当我移植到自己的项目里时,该功能一直不起作用。上网查了一下,实现方法跟我的一样,就是使用setItemChecked.

于是我就重新阅读了google的示例代码,发现他使用的是ArrayAdapter,我用的是BaseAdapter,查了资料发现这2个类区别不大,就是多一个filter接口 , 于是把我的BaseAdapter实现了filter接口,还是不起作用。

于是我仔细查了ArrayAdapter的资料,发现简单版只有一个EditText控件,发现该控件实现了checkable接口。 于是上网搜Listview和checkable ,果然发现很多资料。

于是自定一个一个RelativeLayout类 ,实现checkable接口, 再把布局文件改成自定已的RelativeLayout类, 终于实现了更改listview的某一项的背景颜色。

关键代码只有几句
public void setChecked(boolean checked) {
if(checked){
this.setBackgroundColor(Color.GREEN);
refreshDrawableState();
}else{
this.setBackgroundColor(Color.TRANSPARENT);
refreshDrawableState();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值