我试图通过单击ListView来更改背景颜色。我的代码如下所示:
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
arg1.setBackgroundColor(Color.GREEN);
}
奇怪的是,如果我点击第7项,第7项的背景会改变,但也会从第6项开始。
答案 0 :(得分:3)
因为ListView 回收 内部使用的视图(行项目)。最佳解决方案是通过覆盖适配器中的 getView
方法来更改所需行/项的背景颜色。这样,您可以更好地控制列表项,并可以重置其他不需要的视图的背景颜色。有关详细信息,请阅读this