Radiobutton 点击切换取消选中状态

Radiobutton是一种单选按钮,是由于RadioGroup管理下的一组按钮,所以一旦其中的一个button选中,再点击,就不能取消,想要取消调用Radiobutton的setchecked(boolean isChecked)的方法。

但是连续点击当前的radiobutton的话,只能选中一次和取消选中一次,不能再点击了,因为当把当前的radiobutton取消点击后,其radiogroup的checklistener事件已经响应,所以如果还点击当前的button,group的check事件已经checked,不能再点击了,所以当点击同一个的radiobutton时,当点击取消了,就要调用group的clearcheck()方法,就可以再连续单击该radiobutton了。下面是简单的对radiobutton的点击状态进行的切换代码(kotlin写法,如果用普通的android转换下即可):

radioButton.setOnClickListener {
                //表示连续点击的不是同一个radioButton,则不同的radioButton的初始状态都是false
                if(mRadioButton != radioButton && mRadioButton.text.isNotEmpty()){
                    isChecked = false
                }
                checkedList.clear()//项目中使用的而已,可删除
                radioButton.isChecked = !isChecked//点击button后赋予的点击状态
                if (radioButton.isChecked) {//选中
                    checkedList.add(radioButton.text.toString())
                }else{//取消选中
                    if(mRadioButton == radioButton){//同一个radiobButton要取消radioGroup的check事件,才可连续点击
                        group.clearCheck()//取消radioGroup的check的监听
                    }
                }
                isChecked = radioButton.isChecked//赋予isChecked为目前radioButton的状态
                mRadioButton = radioButton//使mRadioButton为当前点击的radioButton

            }

其中,isChecked是全局的变量,初始值赋为false,mRadioButton也是全局变量,很简单的写法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值