Loading [MathJax]/extensions/tex2jax.js

2021年2月26日金曜日

ラジオボタンで選択中の文言を取得する

Androidでラジオボタンを使う際
選択中のラジオボタンの情報がほしくなることがある。
方法として
  • 公式通り、各ラジオボタンのクリック処理を実装し、 押されたタイミングで情報をローカル変数に保持しておく
  • 各ラジオボタンにisChecked()を実行していき、チェックONのラジオボタンを探す
  • RadioGroupのOnCheckedChangeListenerで変化を監視
どれもローカル変数を用意したり、全Viewチェックしたりで効率的でない。
今回はRadioGroupのAPI仕様を見てたら、丁度良さそうなのがあったので紹介。


getCheckedRadioButtonId

RadioGroupのgetCheckedRadioButtonId()メソッドを使うと
選択されているラジオボタンのViewIDが取得できる。(未選択時は-1が返る)
このIDからラジオボタンを取得し、getText()で文字列情報も持ってこれる


サンプルコード

こんな感じ
■Java版
  1. RadioGroup group = findViewById(R.id.radioGroup);
  2. RadioButton select = group.findViewById(group.getCheckedRadioButtonId());
  3. String text = (select == null) ? "未選択" : select.getText().toString();
■Kotlin版
  1. val text = radioGroup?.run {
  2. findViewById<TextView>(checkedRadioButtonId)?.text }?: "未選択"
  3. }

0 件のコメント:

コメントを投稿