Android listview中使用checkbox「建议收藏」

Android listview中使用checkbox「建议收藏」最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.下面开始正题,在listview的item中使用checkbox,当你按照普通的listview的用法使用时,你会遇到下面这样的问题:1.checkbox可以点击,但是listview的item无法

大家好,又见面了,我是你们的朋友全栈君。最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.

下面开始正题,在listview的item中使用checkbox,当你按照普通的listview的用法使用时,你会遇到下面这样的问题:

1.checkbox可以点击,但是listview的item无法点击

2.无法获得checkbox被点击的是哪一行

第一个问题涉及到事件分发,下一篇再扯(我会按照我的理解,通俗易懂的来描述),第二个问题我的理解就是getview无法重绘的原因,这里拿不到position的值,为了能解决我的问题,我需要换一种思路,也就是我今天介绍的方法:屏蔽checkbox的选择事件,也就是说checkbox不能响应选中事件,当用户点击listview的item时,制造假象,用代码控制选中checkbox

恩,差不多就这些了,由于代码直接写到项目中了,就不写demo了,直接贴一下主要代码,仅供参考,如果您有更好的方法可以相互交流

1,设置 checkbox无法响应点击事件

android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false" 

2.适配器中声明一个值用来控制checkbox的选中情况

private static HashMap<Integer,Boolean> isSelected;

public static HashMap<Integer,Boolean> getIsSelected() {  
        return isSelected;  
    }  
  
    public static void setIsSelected(HashMap<Integer,Boolean> isSelected) {  
    	MyDocShowAdapter.isSelected = isSelected;  
    }  

isSelected = new HashMap<Integer, Boolean>(); 
        for(int i=0; i<list.size();i++) {  
            getIsSelected().put(i,false);  
        } 

3.根据item的点击情况,给checkbox赋值

mListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				ViewHolder holder = (ViewHolder) view.getTag(); 
				holder.mCheckBox.toggle();
				MyDocShowAdapter.getIsSelected().put(position, holder.mCheckBox.isChecked());
			}
		});

今天就到这,有问题请留言,多交流

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163299.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构视频教程哪个好[通俗易懂]

    数据结构视频教程哪个好[通俗易懂]来源:我是码农,转载请保留出处和链接!本文链接:http://www.54manong.com/?id=1207目前,具我粗略不完全统计,网络上流传的数据结构视频教程大概有80个以上,这些视频我都发布到我的网站了,欢迎大家随时过来下载,数据结构视频教程下载,其中大多数都是高校老师录制的,还有一些是学习机构录制的,另外就是一些个人,例如小甲鱼,完全出于爱好提供给大家,非常棒。下面我先给大家介…

    2022年10月8日
    2
  • 矩阵卷积运算过程讲解「建议收藏」

    矩阵卷积运算过程讲解「建议收藏」在爬虫处理验证码的过程中接触到矩阵卷积运算,关于该类运算,记录一下自己的心得。理论知识在讲述卷积过程前,我们来了解一下卷积公式。根据离散二维卷积公式:其中A为被卷积矩阵,K为卷积核,B为卷积结果,该公式中,三个矩阵的排序均从0开始。现在对于上面卷积过程进行分析:我们用来做例子的A矩阵为m×m(3×3)二维矩阵(被卷积矩阵),K为n×n(2×2)的二维矩阵(卷积核)。卷……

    2025年6月28日
    2
  • fastjson注解有哪些(json的注释)

    阿里的fastJoson是一个非常好用的类,json转化的时候用到的jsonField特此记录一下fastjson之@JSONField注解的几个的使用详细示范好文2https://blog.csdn.net/u011425751/article/details/51219242…

    2022年4月10日
    127
  • eigen库的使用_eigenvalue

    eigen库的使用_eigenvalueEigen库使用指南1.模块和头文件Core#include<Eigen/Core>,包含Matrix和Array类,基础的线性代数运算和数组操作。 Geometry#include<Eigen/Geometry>,包含旋转,平移,缩放,2维和3维的各种变换。 LU#include<Eigen/LU>,包含求逆,行列式,LU分解。 Cholesky#include<Eigen/Cholesky>,包含LLT和LDLTCholesky分解

    2022年10月18日
    2
  • Atom + activate-power-mode 关闭屏震

    Atom + activate-power-mode 关闭屏震点击SelectPlugin  去掉第一个的勾选就可以了

    2022年7月14日
    14
  • JAVA编程用什么软件最好_Java编程软件有哪些,Java编程用什么软件好?「建议收藏」

    JAVA编程用什么软件最好_Java编程软件有哪些,Java编程用什么软件好?「建议收藏」“工欲善其事必先利其器”,想要学好Java编程开发,除了要有好的学习资源之外,还要有一套适合自己的Java编程软件,好的编程软件能极大提高你的学习和工作效率。那么,Java编程软件有哪些?Java编程用什么软件好呢?下面整理了一些华清Java学院为大家推荐的Java编程软件。Java编程软件有哪些?1、JDKJDK是java初学时用的,比较麻烦,建议开始学习Java的时候结合记事本使用,可以强迫熟…

    2022年5月10日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号