博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多个互相有联系的checkbox的单选逻辑
阅读量:6326 次
发布时间:2019-06-22

本文共 1812 字,大约阅读时间需要 6 分钟。

checkbox单选的状态逻辑,状态好的时候一下就写好了,状态不好的时候要调试比较久,当然主要是对其中的事件不太清楚。

  先给出效果图吧。

 

  

  然后给出代码,

  

selectZhiFuBaoPay.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if (selectWeiXinPay.isChecked()){                    if (selectZhiFuBaoPay.isChecked()){                        selectWeiXinPay.setChecked(false);                        PAY_MODE = ALIPAY;                    } else{                        PAY_MODE = TENPAY;                    }                } else{                    if (selectZhiFuBaoPay.isChecked()){                        PAY_MODE = ALIPAY;                    } else{                        PAY_MODE = "";                    }                }                            }        });        selectWeiXinPay.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if (selectZhiFuBaoPay.isChecked()){                    if (selectWeiXinPay.isChecked()){                        selectZhiFuBaoPay.setChecked(false);                        PAY_MODE = TENPAY;                    } else{                        PAY_MODE = ALIPAY;                    }                } else{                    if (selectWeiXinPay.isChecked()){                        PAY_MODE = TENPAY;                    } else{                        PAY_MODE = "";                    }                }            }        });

  checkbox的图片效果变换事件我们放在XML文件里面了,主要是一个button 属性的设置,在drawable里面分别设置点击和未点击的背景图就OK了,这样可以减少代码的判断。

  从debug的结果来,在响应点击事件前,checkbox的check状态首先已经改变了,然后再去执行onClick里面的事件,然后在onClick里面执行setChecked并不会又执行OnClick里面的事件,就是不会执行我们自己写的代码的逻辑。

  这个是互不干连的两个checkbox要建立单选关系,如果是listview里面的checkbox要建立单选关系,考虑用数组列表储存状态信息,每次执行的时候判断里面的状态信息只有一个为true就可以了。

  

转载于:https://www.cnblogs.com/likeshu/p/4960166.html

你可能感兴趣的文章
hdu 2413(最大匹配+二分)
查看>>
ASP.NET Cookie概念、CURD操作、原理、实际运用
查看>>
vc++ 判断文件或是文件夹是否存在,比较好的做法
查看>>
(hdu step 8.1.1)ACboy needs your help again!(STL中栈和队列的基本使用)
查看>>
CentOS7 iso封装语句
查看>>
Web项目从Oracle转为Mysql,fluentnhibernate-1.0和NHibernate2.1.0升级到NHibernate3.3的注意事项...
查看>>
Https 公钥、私钥、证书
查看>>
javacsript Numnber 对象
查看>>
MOS管基本构造和工作原理
查看>>
RocketMQ原理解析-Broker
查看>>
【转】【Linux】linux下xargs命令
查看>>
sql server<> != 从数据类型varchar转换为numeric 时出错
查看>>
利用命令行发邮件
查看>>
mac install brew
查看>>
hdu1285 确定比赛名次(拓扑排序多种方法)
查看>>
mysql在linux下的安装
查看>>
php删除数组中指定值的元素
查看>>
第六天-request response\13-request乱码.avi;
查看>>
git版本超前了N个版本且落后了N个版本的解决办法
查看>>
QSettings读写注冊表、配置文件
查看>>