AndroidのRadioButtonの使い方です。
要素を排他的に選択したいときに扱うレイアウトになります。
RadioButtonはこんなレイアウトになります。
まずは、RadioButtonが定義されたLayoutファイルを見ていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<!-- 職業選択RadioGroup --> <RadioGroup android:id="@+id/work_radio_group" android:layout_marginTop="16dp" android:layout_below="@id/job_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal"> <!-- 社会人 --> <RadioButton android:text="@string/worker_text" android:layout_width="wrap_content" android:gravity="center" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:id="@+id/work_radio_button" /> <!-- 学生 --> <RadioButton android:text="@string/student_text" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:id="@+id/student_radio_button" /> <!-- 無職 --> <RadioButton android:text="@string/no_job_text" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:id="@+id/no_job_radio_button" /> </RadioGroup> |
RadioGroup
ボタンの要素となるRadioButtonをRadioGroupクラスで囲みます。
RadioButtonは画面の中央寄せにしたいので、layout_gravity要素を指定しています。
また、どのボタンがタップされているかを判定するためにIDを指定しています。
RadioButtonの状態を取得する
RadioButtonの状態を取得するためにlistenerを設定する必要があります。
listenerは親であるRadioGroupに設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 職業チェックボックス bind.workRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i){ // 社会人 case R.id.work_radio_button: // 仕事ボタンが押された break; // 学生 case R.id.student_radio_button: // 学生ボタンが押された break; // 無職 case R.id.no_job_radio_button: // 無職ボタンが押された break; } } }); |
RadioGroup要素に対して、状態が変わったことを示す
setOnCheckedChangeListenerをセットします。
onCheckedChanged
RadioButtonの設定が変わると呼び出されるメソッドです。
第一引数にRadioGroupが第二引数にRadioButtonのidが渡されます。
どのRadioButtonが押されたのかを判定するには、
第二引数のIDで判別すればいいことになりますね。