java - onBindViewHolder 重复结果
问题描述
我创建了一个RecyclerView Adapter
显示项目列表的项目,每个项目旁边都有一个Checkbox
.
在我创建的适配器内部:
interface OnItemCheckListener {
void onItemCheck(DiscoverBooks books);
void onItemUncheck(DiscoverBooks books);
}
@NonNull
private OnItemCheckListener onItemCheckListener;
@Override
public void onBindViewHolder(BorrowViewHolder holder, int position) {
holder.bind(items.get(position), position);
final Discoveritems currentItem = items.get(position);
holder.setOnClickListener( v -> {
holder.Cb_Borrow.setChecked( !holder.Cb_Borrow.isChecked());
if (holder.Cb_Borrow.isChecked()) {
onItemCheckListener.onItemCheck(currentItem);
} else {
onItemCheckListener.onItemUncheck(currentItem);
}
} );
}
我在其中为用户提供了检查复选框并稍后使用此数据的选项。
但是,我发现,例如,如果我单击第一个项目的复选框,它会使每 7 个项目被选中。
例如我得到的:
item 1 - item checked
item 2
item 3
item 4
item 5
item 6
item 7
item 8 - item checked
item 9
item 10
item 11
item 12
item 13
item 14
item 15 - item checked
知道为什么会这样吗?
谢谢
解决方案
推荐阅读
- excel - VBA UserForms noModal和Modal交互问题
- javascript - chrome 扩展通过共享本地存储将多条消息传递到外部站点
- html - 使用固定位置滚动左侧菜单
- javascript - Node.js Express.js 发送 Jquery Ajax Post 抛出常量错误 - 我被卡住了
- reactjs - 是什么导致 ReactJS 中出现以下 Firestore 错误?使用无效数据调用的函数 DocumentReference .update()。不支持的字段值:
- linux - 通过 SPI (Linux) 刷新 Atmel SAM3X8E ARM Cortex-M3
- amazon-web-services - 如何将现有 CodePipeline 导出到 CloudFormation 模板
- python - Python使用for循环对齐文本
- python - Python regex - 为什么匹配'e42dsf425'?
- powershell - 通过 winrm 在远程服务器上执行命令失败