ListView选择多个选项

时间:2013-12-16 10:40:32

标签: android

单击列表项时,也会选择每12个项目。不明白为什么?

@Override
public void onListItemClick(ListView l, View v, int position, long id){

    CheckedTextView check = (CheckedTextView) v;

    if (check.isChecked()){
        check.setChecked(false);
        selections.remove((Integer) position);
    }
    else{
        check.setChecked(true);
        selections.add((Integer) position);
    }
}

我使用ArrayAdapter。名称是一个大约1000个选项的String []。

adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_multiple_choice, names);
setListAdapter(adapter);

2 个答案:

答案 0 :(得分:1)

我认为,问题出在你的适配器的getView方法中。

如果您在那里重用对象,那么每次都必须刷新CheckedTextView的选择

答案 1 :(得分:0)

您需要在适配器的构造函数中执行类似的操作,在开始时将复选框的状态设置为false

private ArrayList<Boolean> itemChecked = new ArrayList<Boolean>();

for (int i = 0; i < this.getCount(); i++) {
            itemChecked.add(i, false); // initializes all items value with false
        }

然后在单击时将其更改为true。并相应地更改复选框的状态。

相关问题