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