Radiobuttonクリック切り替え選択解除状態

1503 ワード

Radiobuttonはラジオボタンの一種であり、RadioGroup管理下のボタンのセットであるため、そのうちの1つの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もグローバル変数であり,簡単な書き方である.