视图将在onItemClick上获得两次

时间:2012-04-30 08:41:17

标签: android listview

我试图通过单击ListView来更改背景颜色。我的代码如下所示:

@Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {          
        arg1.setBackgroundColor(Color.GREEN);
    }

奇怪的是,如果我点击第7项,第7项的背景会改变,但也会从第6项开始。

1 个答案:

答案 0 :(得分:3)

因为ListView 回收 内部使用的视图(行项目)。最佳解决方案是通过覆盖适配器中的 getView 方法来更改所需行/项的背景颜色。这样,您可以更好地控制列表项,并可以重置其他不需要的视图的背景颜色。有关详细信息,请阅读this