在我的简单适配器中,我想管理项目的复选框。
当我再次单击选中的复选框时,在再次检查状态复选框后,将取消选中状态,不要更改
logcat的:
E/checkedState: false
E/checkBoxStates: {09122331743=true}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
E/checkedState: true
E/checkBoxStates: {09122331743=false}
我的代码是:
public void onBindViewHolder(final CustomContactsViewHolder holder, final int position) {
...
Boolean checkedState = checkBoxStates.get(list.get(position).getMobileNumber());
holder.select_contact.setChecked(checkedState == null ? false : checkedState);
holder.select_contact.setTag(position);
holder.select_contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onChange((Integer) v.getTag());
}
});
}
private void onChange(int position) {
final UserPhoneContacts item = list.get(position);
if (item == null) {
return;
}
boolean checkedState = checkBoxStates.get(list.get(position).getMobileNumber()) == null ? false : true;
Log.e("checkedState ", checkedState + "");
checkBoxStates.put(item.getMobileNumber(), !checkedState);
Log.e("checkBoxStates ", checkBoxStates.toString());
notifyDataSetChanged();
}
点击复选框后,将检查状态,点击后如果取消选中状态,我点击后就无法改变状态,
点进> 选中,点击 - > 取消选中,点击 - > 取消选中,点击 - > 取消选中,点击 - >的选中
我该如何解决这个问题?
答案 0 :(得分:0)
您可以尝试使用holder.select_contact.setOnCheckedChangeListener()而不是onClickListener。