【发布时间】:2015-03-30 18:41:37
【问题描述】:
我遇到了一个奇怪的问题。我有一个 android 应用程序,它包含包含ListViewAdapter 的活动。每个元素都包含一个checkbox。
我有以下代码-
public View getView(final int position, View convertView, ViewGroup parent) {
CheckBox check = (CheckBox) view.findViewById(R.id.myCheckBox);
if(check.getTag() == null) {
check.setTag(position);
check.setOnCheckedChangeListener(myCheckChangList);
}
check.setChecked(holders.get(position).isChecked);
}
private OnCheckedChangeListener myCheckChangList = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
holders.get((Integer) buttonView.getTag()).isChecked = isChecked;
}
};
当我向下滚动我的listview 时,我的OnCheckedChangeListener 会触发并重置我的checkbox(如果已设置)。为什么会这样?当我手动单击 checkbox 或以编程方式调用 setChecked 时会触发 OnCheckedChangeListener,但当我向下滚动时也会触发。为什么?
【问题讨论】:
-
可能是您的适配器中正在进行视图回收,但您发布的代码不能是您的实际代码。
-
发布实际代码。
标签: java android listview checkbox