实现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版本不会出现这个问题。 展开
@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版本不会出现这个问题。 展开
3个回答
展开全部
我的错没看清楚问题。
按题主代码自测在4.4.2上面没有出现该问题。
---------------------原答案分隔线------------------------
你这样写的代码不是最优的,一种比较好的写法是自定义Adapter,在getview方法里面自定义一个list的item的xml文件,在xml里面用自定义selector。而listview在xml里面的属性中listSelector要设置为空就是android:listSelector="@null"
按题主代码自测在4.4.2上面没有出现该问题。
---------------------原答案分隔线------------------------
你这样写的代码不是最优的,一种比较好的写法是自定义Adapter,在getview方法里面自定义一个list的item的xml文件,在xml里面用自定义selector。而listview在xml里面的属性中listSelector要设置为空就是android:listSelector="@null"
展开全部
这个变背景色最好放在Adapter的getView里面写。
点击的时候只是设置一下对应 position的item中的某个状态值。然后调用Adapter的notifyDataSetChanged方法刷新列表。
getView里面根据item的这个状态值,来显示不同的背景色。
点击的时候只是设置一下对应 position的item中的某个状态值。然后调用Adapter的notifyDataSetChanged方法刷新列表。
getView里面根据item的这个状态值,来显示不同的背景色。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个建议在adapter里面控制,
可以先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
adapter里面设置一个变量来保存当前点击的position,然后在getview里面进行判断,如果点击的position跟要设置的这个view的position是同一个,则吧convertView的背景色设置成那个色,其他的设置成原来的。
可以先给listview设置listSelector为你点击时要显示成的颜色,然后在adapter里面再控制一下这项的颜色,
adapter里面设置一个变量来保存当前点击的position,然后在getview里面进行判断,如果点击的position跟要设置的这个view的position是同一个,则吧convertView的背景色设置成那个色,其他的设置成原来的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询