diadia

興味があることをやってみる。自分のメモを残しておきます。

Kotlin Radioボタンを実装する方法

Radioボタンを使う際のイメージ

RadioGroupを使う。 リスナーについては2つ考え方がある。 ラジオボタンに実装するのではなく、RadioGroupにリスナーを実装する方法と、通常のボタンにリスナーを実装する方法である。 RadioGroupにリスナーを実装する方法はラジオボタンの切り替えイベントに対する処理を規定するものらしい(おそらく)。 一方通常のボタンにリスナーを設置する方法は、現在選択されているラジオボタンのデータ送信に使われる。

RadioButtonのデフォルト値の定め方

コンストレイントレイアウトでラジオボタンを実装する際には、Checkという項目にチェックだけすれば良い。

RadioButtonにリスナー機能を実装する

まずリスナーをRadioGroupに設置する。リスナー名は、setOnCheckedChangeListenerである。

https://developer.android.com/reference/kotlin/android/widget/RadioGroup.OnCheckedChangeListener

https://developer.android.com/reference/kotlin/android/widget/RadioGroup.OnCheckedChangeListener#oncheckedchanged

onCheckedChanged(group: RadioGroup!, checkedId: Int)

ラジオボタンが押されたもののリソースIDが引数となる。このリソースIDというのがcheckedIdに当たる。したがってwhen構文等を使って一致するリソースIDを特定して処理したいロジックを記述する。このリスナーを使うとラジオボタンが変更されるたびに処理したい内容が実行される。

通常のボタンにリスナーを追加する

RadioGroup.checkedButtonIdを使うと現在選択されているラジオボタンのリソースIDを取得する事ができる。 https://developer.android.com/reference/kotlin/android/widget/RadioGroup#getcheckedradiobuttonid これを使えば、ボタンを押した時にどのボタンが選択されているか把握する事ができる。