ListView 中Checkbox 错乱问题

简介: 最近项目需求,模仿今日头条的短视频播放,点击其中一个视频,将其他的视频停止播放。撸完代码后执行,发现会发现图片错位的情况,然后去谷歌,寻求解决,大多数都是setTag()方式,可以试过后还是存在问题。

最近项目需求,模仿今日头条的短视频播放,点击其中一个视频,将其他的视频停止播放。撸完代码后执行,发现会发现图片错位的情况,然后去谷歌,寻求解决,大多数都是setTag()方式,可以试过后还是存在问题。思考后发现这里的问题其实就是ListView中Checkbox错乱问题。

原理:复用view,当选中Checkbox的时候,记下其状态,用map保存起来。
定义集合保存。
控件:假设控件为my_view,点击my_view后改变背景操作,代码如下:

class MyActivity extends Activity {
    ...
    // 1.定义集合保存状态
    private Map<Integer, Boolean> isChecked;

    // 2.初始化状态,默认没有选中状态为false
    private void initData(){  
        isChecked=new HashMap<>();  
        for(int i=0;i<list.size();i++){
            isChecked.put(i, false);  
        }  
    } 
    
    private class MyAdapter extends BaseAdapter {
        public MyAdapter() {
            // 2.调用初始化方法
            initData();
        }
        ...
        @Override
        public View getView(final int position, View convertView, ViewGroup parent){
            ...
            // 3.点击事件后记录
            viewHolder.my_view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 4.变量记录
                    isChecked.put(position, true);
                }
            });
            // 5.初始化my_view的状态一定要放在监听器后面,否则还是会出现数据错乱情况。(重要)
            holder.my_view.setBackground();
        }
        
    }
}
目录
相关文章
|
人工智能 Linux Shell
用命令修改宝塔面板修改默认端口
用命令修改宝塔面板修改默认端口
|
域名解析 SQL 网络协议
Hexo 个人博客快速部署到Gitee&Coding详细教程
Hexo 个人博客快速部署到Gitee&Coding详细教程
1718 0
Hexo 个人博客快速部署到Gitee&Coding详细教程
|
运维 监控 NoSQL
【赵渝强老师】监控Redis
Redis 实例的监控是运维管理中的关键内容,主要包括内存、吞吐量、运行时信息和延时的监控。 1. **监控内存**:使用 `info memory` 可查看 Redis 内存使用情况,包括已用内存、峰值内存等。 2. **监控吞吐量**:通过 `info stats` 获取每秒处理命令数(OPS)、网络输入输出流量等。 3. **监控运行时信息**:利用 `info` 命令结合 `grep` 过滤出客户端连接数、拒绝连接数等重要信息。 4. **监控延时**:可以通过客户端手动监控或服务器内部延迟监控来检测延时问题。
532 3
|
运维 容灾 API
云栖大会 | 阿里云网络持续演进之路:简单易用的智能云网络,让客户专注业务创新
云栖大会 | 阿里云网络持续演进之路:简单易用的智能云网络,让客户专注业务创新
1104 2
|
弹性计算 编解码 负载均衡
阿里云飞天洛神2.0:开放弹性的云网络NFV平台
作为飞天系统的核心组件,洛神平台支撑了超大规模租户、超大规模虚拟机的高性能云网络。其中洛神2.0 NFV平台的定位是构建通用、灵活的平台能力,降低业务网元NFV化的门槛和成本,实现了复杂业务网元超高的灵活性和弹性。
6290 0
阿里云飞天洛神2.0:开放弹性的云网络NFV平台
|
弹性计算 数据中心
阿里云香港服务器cn2线路怎么样?贵吗?
阿里云香港服务器cn2线路怎么样?贵吗?阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量。阿里云百科来详细介绍阿里云香港云服务器
|
Windows 数据安全/隐私保护
windows客户端连接到samba服务器(如何使用samba)
首先确保你的服务端已经配置好samba并成功启动服务,方法可参考此文章http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx,我们就可以从 Windows 客户端通过Windows网络连接到Samba,这里以 Windows...
6016 0
|
机器学习/深度学习 编解码 API
FFmpeg命令行解析
FFmpeg命令行解析
1543 1
|
数据采集 搜索推荐 前端开发
基于springboot+vue+爬虫实现电影推荐系统
基于springboot+vue+爬虫实现电影推荐系统
1350 3
基于springboot+vue+爬虫实现电影推荐系统
|
API 芯片
STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享
STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享
805 0

热门文章

最新文章