Java Android-更改多选项列表视图背景的颜色

Java Android-更改多选项列表视图背景的颜色,java,android,listview,colors,onitemclicklistener,Java,Android,Listview,Colors,Onitemclicklistener,我有一个多选列表视图,默认为白色背景,但选中后,项目的背景变为蓝色,在这里由十六进制代码定义 mItemState = new boolean[list.length]; ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListOfMajors.this,android.R.layout.simple_list_item_multiple_choice,list); mylist.setChoiceMode(

我有一个多选列表视图,默认为白色背景,但选中后,项目的背景变为蓝色,在这里由十六进制代码定义

mItemState = new boolean[list.length];
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListOfMajors.this,android.R.layout.simple_list_item_multiple_choice,list);
mylist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mItemState[position] = !mItemState[position];
        if (mItemState[position]){
            view.setBackgroundColor(Color.parseColor("#33b5e5"));                                       
        }else{
            view.setBackgroundColor(Color.WHITE);                       
        }

    }

});

现在,一切似乎都很顺利。但是,如果我选择第一个元素,最后一个元素也会改变背景色,但不会勾选。同样,如果我选择最后一个元素,同样的事情也会发生在第一个元素上。发生这种情况的原因是什么?

您必须熟悉ListView回收机制和convertView模型。最后一个元素视图是使用第一个元素视图作为convertView组成的。考虑这个博客。

这是否意味着没有办法解决这个问题?你可以将类AdAdAdultCub类覆盖GETVIEW…不使用convertView,但这是一个非常糟糕的主意。在我的案例中,我应该如何使用convertView?在我考虑的上面的链接中,有一个getView的示例。。。。方法,您可以删除`if convertView==null..`条件并删除ViewHolder类。