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也是全局变量,很简单的写法。

你可能感兴趣的:(kotlin)