项目需要:条目上有checkbox,项目用的是BaseQuickAdapter
解决办法1:
在自己的BaseQuickAdapter里面重写
@Override public int getItemViewType(int position) { return position; }
可以解决复用引起的条目状态错乱;有个问题,如果添加header或者footer;会报角标越界(如有大佬知道解决办法,望指点,谢谢!)
解决办法2:
在自己Bean里写个boolean字段用于记录勾选状态,
CheckBox cb=helper.getView(R.id.cb_case); cb.setOnCheckedChangeListener(null);//重要,用于清空监听器 cb.setChecked(item.isSeriesChecked()); helper.setOnCheckedChangeListener(R.id.cb_case, new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { item.setSeriesChecked(isChecked); if(isChecked){ LogUtil.e("选中了"+helper.getPosition()); }else{ LogUtil.e("取消了"+helper.getPosition()); } } });