参考博文:http://www.myexception.cn/mobile/1852852.html

在使用RecycleView做仿微信图片选择器,其中条目中使用了checkbox,在选中时由于holder的复用,导致checkbox会多选,解决方案如下:

需要两个list一个用来放tag标记,一个用来放置选中的图片路径。

holder.checkBox.setTag(new Integer(position));//防止复用导致的checkbox多选的问题。
//防止复选的辅助list checkPositionlist
if (checkPositionlist != null) {
holder.checkBox.setChecked((checkPositionlist.contains(new Integer(position)) ? true : false));
} else {
holder.checkBox.setChecked(false);
} holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
if(!checkPositionlist.contains(holder.checkBox.getTag()))
{
checkPositionlist.add(new Integer(position));
checkedImgs.add(currentImgPath);
}
}else {
if(checkPositionlist.contains(holder.checkBox.getTag())){
checkPositionlist.remove(holder.checkBox.getTag());
checkedImgs.remove(currentImgPath);
}
}
}
});

recycleview中使用checkbox导致的重复选中问题的更多相关文章

  1. Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中

    Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxC ...

  2. C# 怎样判断 datagridview 中的checkbox列是否被选中

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){ for (int i  ...

  3. jq、js中判断checkbox是否选中

    最近在开发项目时用到checkbox复选框,其中遇到一个问题:在JQ中如何判断checkbox是否被选中呢?之前用JQ获取元素的属性用的都是attr(),但用在checkbox上却没有用,原因何在?? ...

  4. WPF ListBoxItem模板中添加CheckBox选中问题

    原文:WPF ListBoxItem模板中添加CheckBox选中问题 是这样的,需要一个ListBox来展示照片,并添加一个选中的CheckBox.这就需要对ListBox的ItemTemplate ...

  5. 【ABAP系列】SAP ABAP ALV中设置CHECKBOX同时选中事件

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中设置CHE ...

  6. DataGridView 中添加CheckBox和常用处理方式 .

    DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataG ...

  7. C# WinForm中实现CheckBox全选反选功能

    今天一群里有人问到这个功能,其实应该挺简单,但提问题的人问题的出发点并没有描述清楚.因此,一个简简单单的需求,就引起了群内热烈的讨论.下面看看这个功能如何去实现,先上效果: 下面直接上代码,请不要在意 ...

  8. DataGridView中实现checkbox全选的自定义控件

    在DataGridView中实现Checkbox的全选的方法就是在列头画一个checkbox, 并给其一个事件. 这个之前很多blog都有写, 这里就不多废话了,  codeproject上面有示例代 ...

  9. Jquery动态在td中添加checkbox

    如图:想要在这个id为headId的<td>中,用jquery动态添加checkbox 代码如下 : data是我用ajax 从后台获取的数据,里面含有若干个user类,我想把所有的人名字 ...

随机推荐

  1. cocos2dx 3.x以上版本搭建Mac环境(百分百可行)

    近期由于工作的原因,有机会接触了游戏行业,说实话,本人学程序最原始的初衷就是想做游戏,于是就创建了一篇cocos2d-x的分类来记录我在学习cocos2d-x的成长过程. 首先第一篇,想学cocos2 ...

  2. iOS符号表

    https://docs.bugtags.com/zh/symbols/ios/find.html 发红包的限制 1.发送频率规则 ◆ 每分钟发送红包数量不得超过1800个: ◆ 同一个商户号,每分钟 ...

  3. 第8章 委托、Lamdba表达式和事件

    本章内容: 委托    Lambda表达式 事件 8.1.3   简单的委托示例 首先定义一个类MathOperations,它有两个静态方法,对double类型的值执行两个操作. public cl ...

  4. 参数db_ultra_safe

    db_ultra_safe参数设置控制保护级别的其它参数的默认值 可以取的值有:off.data_only.data_and_index.默认值是off -off:不影响db_block_checki ...

  5. interblock corruption & intrablock corruption

    interblock corruption: corruption blocks rather than within the block itself. can only be logical co ...

  6. MySQL半同步复制的安装和配置

    (1)检查master/slave是否支持动态加载插件 > show variables like 'have_dynamic_loading'; +---------------------- ...

  7. ios 获取崩溃日志

    虽然有了try catch异常捕获,但是还是存在崩溃异常无法捕获到的.我可以通过下面的方式来获取崩溃日志: - (BOOL)application:(UIApplication *)applicati ...

  8. Shell cmd set note

    查看启动信息 dmesg [ 0.000000] Initializing cgroup subsys cpuset[ 0.000000] Initializing cgroup subsys cpu ...

  9. 《30天自制操作系统》10_day_学习笔记

    harib07a: 整理内存管理函数:memman_alloc和memman_free能够以最小1字节进行内存管理,但时间久了后,容易产生外部碎片:为此,笔者编写了一些以0x1000字节为单位进行内存 ...

  10. JS小练习 留言功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...