实现android中listView的item点击变背景色

lv.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(Ada... lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
view.setBackgroundColor(Color.BLACK);

}
});
为什么当我点击item时,不止点击的Item背景色改变,还有另外一个Item颜色也发生改变,这个View难道不是指被我点击的view么?
运行环境是android4.4, 但4.2版本不会出现这个问题。
展开
 我来答
Radixxx
2015-11-12 · TA获得超过108个赞
知道答主
回答量:62
采纳率:0%
帮助的人:31.5万
展开全部
我的错没看清楚问题。
按题主代码自测在4.4.2上面没有出现该问题。
---------------------原答案分隔线------------------------
你这样写的代码不是最优的,一种比较好的写法是自定义Adapter,在getview方法里面自定义一个list的item的xml文件,在xml里面用自定义selector。而listview在xml里面的属性中listSelector要设置为空就是android:listSelector="@null"
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
lllwwwllwwlw
2014-03-18 · TA获得超过295个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:118万
展开全部
这个变背景色最好放在Adapter的getView里面写。
点击的时候只是设置一下对应 position的item中的某个状态值。然后调用Adapter的notifyDataSetChanged方法刷新列表。
getView里面根据item的这个状态值,来显示不同的背景色。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卫tove
推荐于2016-04-11
知道答主
回答量:12
采纳率:0%
帮助的人:6.6万
展开全部
这个建议在adapter里面控制,
可以先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
adapter里面设置一个变量来保存当前点击的position,然后在getview里面进行判断,如果点击的position跟要设置的这个view的position是同一个,则吧convertView的背景色设置成那个色,其他的设置成原来的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式