如何在Adapter的getView()中只选择一个复选框

时间:2015-07-08 07:36:06

标签: android android-listview

cbChecked.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                // TODO Auto-generated method stub
                FaxDialogActivity.record.get(position).isChecked = true;
            }
        });

但是当我选中一个复选框时,滚动列表视图后会选中多个复选框。

1 个答案:

答案 0 :(得分:0)

这是因为每次视图循环时都会调用getview,同时滚动列表视图。所以你要存储一个值并在getview中检查它以获得复选框。

试试这个

1>创建Boolean Object的ArrayList以存储每个CheckBox的状态 2 - ;将ArrayList项初始化为默认值false,表示尚未检查CheckBox。 3>单击CheckBox时。针对Checked / Unchecked状态设置检查并将该值存储在ArrayList中。

现在使用setChecked()方法将该位置设置为CheckBox。

有关完整代码,请参阅THIS ANSWER和此BLOG