解决 listview 中添加 checkbox 出现的问题

ListView添加CheckBox复选框 在ListView中添加CheckBox,实现多选条目 立即下载

在实际的开发当中,我们会遇到 listview 中带有 checkbox的布局,可能会遇到几个问题.

1.listview 失去了点击效果

2.checkbox 无法实现单选效果

3.当选中了某一个 checkbox, 另一个 listview 也会被选中

对于第一个出现的问题,是因为 listview 的行布局中存在 button 之类的控件时, listview 的焦点会被该空间抢去,从而使 listview 本身失去焦点.

解决方法:在 listview 中的 行布局文件中的 xml 文件中将 button或 check 之类的控件焦点去掉,添加属性android:checkable="false" 和android:false able'"false" 即可

第二个问题可第三个问题一般是一起出现,实现单选不难,但是经常会出现第三个问题,原因是 listview 在绘制时复用了 convertview

解决方法:要持有 listview 被点击的行布局的 position, 这个 position 要点击的 position 不一样

直接上代码

holder.pay_way_lv_item_cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    //把上次被选中的checkbox设为false
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {//实现checkbox的单选功能
            if (temp != -1) {
                //找到上次点击的checkbox,并把它设置为false,对重新选择时可以将以前的关掉
                CheckBox tempCheckBox = (CheckBox) context.findViewById(temp);
                if (tempCheckBox != null)
                    tempCheckBox.setChecked(false);
                else
                    temp = -1;
            }
            temp = buttonView.getId();//保存当前选中的checkbox的id值
            if (position == temp) {
                finalHolder.pay_way_lv_item_cb.setChecked(true);
            } else {
                finalHolder.pay_way_lv_item_cb.setChecked(false);
            }
        }

    }
});

代码中的 temp 为 int temp= -1; 定义成-1表示为被选中


希望对各位有所帮助,新手上路,不喜勿喷,谢谢!

python 写一个简单的 telegram bot (电报机器人) replit.com 环境配置太恶心了,只能使用 poetry.poetry 这个名字是挺好听,用起来也是很垃圾,太恶心。heroku.com 注册登录不方便,需要各种验证。所以,部署的问题,目前搁置。 阅读详情

相关推荐

【驭风计划 算法训练营】周测4:习题11-4、8-4、12-4

给出 nn 个非负整数 x1,x2,⋯,xnx1,x2,⋯,xn,有 qq 个询问,第 jj 个询问给出一个非负整数 yjyj,求其中,xor 表示按位异或运算。

Mege1的博客 1042

ListView条目中有CheckBox点击事件失效问题

在listview的item中包含有textview和checkBox。我们既想获取listitem的点击事件,又想获取listitem中textview的点击事件和listitem中checkBox的点击事件。这篇文章主要介绍了listView的item中有checkbox,导致setOnItemClick失效的原因及解决办法,需要的朋友可以参考下:  一:item的根布局设置

zhp的博客 2584

算法 A 求稳健平均值和稳健标准差

文章目录算法原理代码 算法原理 算法 A 来自 GB/T 6379.5。应用此算法计算得到数据平均值和标准差的稳健值。稳健性是估计算法的特点,而不是其产生的估计值的特点,因此严格来说,称由此算法计算的平均值和标准差是稳健的是不确切的。然而,为避免使用繁琐的术语,“稳健均值”和“稳健标准差”应理解为利用稳健算法计算的总体均值和总体标准差的均值估计。 设数据为 xi,i∈(1,2,⋯ ,n)x_i, i\in(1,2,\cdots,n)xi​,i∈(1,2,⋯,n),记稳健平均值为 x∗,s∗x^*, s^*x

zhuo木鸟的博客 9253

C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

本文转载自:http://www.liangshunet.com/ca/201309/586362553.htm 亮术网 2020-03-07 本网原创 DataGridView控件功能十分强大,显示表格也方便,但性能就没有那么高;ListView控件功能没那么强大,显示表格也要多写代码,但性能相对高一些。开发过程中,可根据需要选用;对于显示表格来说,用 ListView控件也不难,以下是两个具体实例。 一、C# Winform ListView 生成表格 1、拉一个 ListView控件到 .

奋斗的菜鸟博客 8721

手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

数字IC后端设计培训教程之手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

weixin_37584728的博客 2931

在 Zemax 非序列模式下建立干涉仪模型

Zemax 利用其相干检测功能,将到达探测器的射线的能量相干地组合起来,同时考虑每条检测到的射线的幅度和相位。从对这些干涉条纹的定量评估来看,光学干涉仪具有广泛的应用,包括在天文学中用于测量天体的大小,在计量学中用于精确测量距离,在显微镜中用于提高分辨率,以及在物理和工程的各个领域中用于检测条件的微小变化。在光学干涉仪中,使用的是光波。非相干和相干相加的总功率是守恒的,但相干光束的峰值辐照度应该是非相干光束总和的 2 倍,这是理所当然的。请注意,条纹的缺失是显而易见的,因为不再从相干的角度观察探测器。

jkh920184196的博客 2380

listView的item中含有checkbox的一些问题及解决办法

问题1        因为checkbox的点击事件优先级高于listview的item点击事件 所以,checkbox点击后,item的事件将不能触发。 、  解决方法:          要想checkbox和item的事件都能触发,只需要在item的跟 布局中添加android:descendantFocusability="blocksDescendants" 问题2

doctorzhong的博客 1041

百度API实现人流量数量检测(动态)

百度的这个API还挺好用的,对与不追求高精度的人来说非常适用,结合他官方给的文档,极易上手。 需要做的就是通过API Key和Secret Key获取的access_token。 然后稍微修改下代码就行,但是他给的代码并没有直接从摄像头获取视频,而是读取一个文件夹,那么就需要自己先对摄像头的输出视频进行处理。 识别结果如下,"person_num"是当前画面的人数,in是累计进入的人数,out是累计走出去的人数。 他这个有个缺点就是返回值里边并没有实时返回in和out的值,而是都是0,但是这个图片上有,图片

qq_42479987的博客 3379

让Updatepanel中的控件触发整个页面Postback

GridView被Updatepanel包起来了,但是GridView上有一个Download的ImageButton, 局部刷新的话,无法下载文件, 所以用下面代码注册updatepanel中的download button每次点击都整个页面postback。 for (int i = 0; i < this.GridViewSOPDocument.Rows.Count; i++)   ...

weixin_34112181的博客 122

Codev与Zemax相互转化

Codev与Zemax相互转化

weixin_72050316的博客 1043

SAP BSIS:总账未清项表(Open Items)总账未清项 包含哪些业务 请给以举例说明

SAP总账未清项是指需要未来核销的会计行项目,仅适用于勾选"未清项管理"的总账科目。典型业务场景包括:供应商预付款(借方未清项)、员工备用金(借方未清项)、客户预收款(贷方未清项)和保险理赔(借方未清项)。系统通过表BSIS/BSAS跟踪未清项,支持明细追踪和账实核对。核心价值在于提供总账级别的明细管理能力,确保往来款项完整清账,简化对账流程,满足特殊业务管理需求。可通过FBL3N事务码查询和管理所有总账未清项。

金牌架构师 723

android:descendantFocusability用法简析

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者...

daibalusu 839

AUTOSAR-SOMEIP配置总结

导入arxml之后someip信号一般以“pduSomeIp”开头或者“SomeIp”开头。以某个pdu为例,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。在导入arxml之后someip信号中有三个特殊的信号,形如“SdInstance”开头的信号,设置项“Pdu Default Partition Ref”主要是根据模块设计,配置相应的Ecuc核分区。“EcuC”模块主要关注“EcucPduCollection”中的“Pdus”下面的配置。

xiandang8023的博客 4651

完美解决Android在listview添加checkbox实现单选多选操作问题

在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总共有12个item,也就是说listview的item数大于屏幕能够显示的item数)滑动屏幕的时候,由于适配器中getview()会重

sowhat专栏 1071

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

解决Android在listview添加checkbox实现单选多选操作问题

转自: http://blog.youkuaiyun.com/failure01/article/details/8561573 在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总

u013714419的专栏 718

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

完美解决Android在listview添加checkbox实现批量操作问题

转自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=152037 在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个i

GrimRaider的专栏 1235

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

美解决Android在listview添加checkbox实现单选多选操作问题

亲试,非常完美

yangaiyu的博客 460
下一篇: ListView 列表播放视频,支持横竖屏无缝切换
xiaoxin_Android
博客等级 码龄11年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值