Androidでラジオボタンを使う際
選択中のラジオボタンの情報がほしくなることがある。
選択中のラジオボタンの情報がほしくなることがある。
方法として
- 公式通り、各ラジオボタンのクリック処理を実装し、 押されたタイミングで情報をローカル変数に保持しておく
- 各ラジオボタンにisChecked()を実行していき、チェックONのラジオボタンを探す
-
RadioGroupのOnCheckedChangeListenerで変化を監視
どれもローカル変数を用意したり、全Viewチェックしたりで効率的でない。
今回はRadioGroupのAPI仕様を見てたら、丁度良さそうなのがあったので紹介。
getCheckedRadioButtonId
RadioGroupのgetCheckedRadioButtonId()メソッドを使うと
選択されているラジオボタンのViewIDが取得できる。(未選択時は-1が返る)
このIDからラジオボタンを取得し、getText()で文字列情報も持ってこれる
サンプルコード
こんな感じ
■Java版RadioGroup group = findViewById(R.id.radioGroup); RadioButton select = group.findViewById(group.getCheckedRadioButtonId()); String text = (select == null) ? "未選択" : select.getText().toString();■Kotlin版
val text = radioGroup?.run { findViewById<TextView>(checkedRadioButtonId)?.text }?: "未選択" }
0 件のコメント:
コメントを投稿