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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现android中listView的item点击变背景色相关的知识,希望对你有一定的参考价值。

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版本不会出现这个问题。

我的错没看清楚问题。
按题主代码自测在4.4.2上面没有出现该问题。
---------------------原答案分隔线------------------------
你这样写的代码不是最优的,一种比较好的写法是自定义Adapter,在getview方法里面自定义一个list的item的xml文件,在xml里面用自定义selector。而listview在xml里面的属性中listSelector要设置为空就是android:listSelector="@null"
参考技术A 这个变背景色最好放在Adapter的getView里面写。
点击的时候只是设置一下对应 position的item中的某个状态值。然后调用Adapter的notifyDataSetChanged方法刷新列表。
getView里面根据item的这个状态值,来显示不同的背景色。
参考技术B 这个建议在adapter里面控制,
可以先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
adapter里面设置一个变量来保存当前点击的position,然后在getview里面进行判断,如果点击的position跟要设置的这个view的position是同一个,则吧convertView的背景色设置成那个色,其他的设置成原来的。本回答被提问者采纳

android 如何在listview中点击当前Item中的按钮删除该item

参考技术A 对listView设置监听 删除本条数据 实现删除item功能 参考技术B 重写adapter的getView,在里边给每个item添加onclick事件

以上是关于实现android中listView的item点击变背景色的主要内容,如果未能解决你的问题,请参考以下文章

android 往dialog中加入listview,并实现listview中item的点击事件

android 如何在listview中点击当前Item中的按钮删除该item

android listview每一个item点击换个背景图或者背景色。要怎么做?求教

ListView的使用小记(使用SimpleAdapter显示列表实现Item的点击事件)

listview中的每一个Item都有edittext,如何能够让listview的item和edittext都能响应点击消息

Android中Listview点击item不变颜色以及设置listselector 无效