さまざまなGUI部品を使ってみよう! (2/7)
作成:2009-12-28 09:20
更新:2010-05-11 11:16
更新:2010-05-11 11:16
■ラジオボタンを使う
ラジオボタンは、チェックボックスと似ていますが、ちょっとだけ複雑です。複数のボタンをグループ化して処理しなければならないためです。この点を理解しておく必要があります。
ラジオボタンそのものは「RadioButton」という名前で用意されていますが、これを利用するためには、複数のラジオボタンをグループ化する「RadioGroup」というものを利用する必要があります。この<b[RadioGroupの中にRadioButtonを配置してレイアウトすることで、それらが1つのグループとして機能するようになります。
ボタンの選択状態は、チェックボックスと同様に「getChecked」「setChecked」で操作できますが、「現在、どのラジオボタンが選択されているか」は、RadioGroupに用意されている「getCheckedRadioButtonId」を使います。これにより、現在選択されているラジオボタンのID番号が得られますので、これを元にfindViewByIdでコンポーネントを取得すればいいわけです。
では、以下に簡単な例を挙げておきましょう。起動時に2番目のラジオボタンをチェックしておき、それから現在選択されているラジオボタンを調べてそのラベル(表示されているテキスト)を上に表示させています。
ラジオボタンそのものは「RadioButton」という名前で用意されていますが、これを利用するためには、複数のラジオボタンをグループ化する「RadioGroup」というものを利用する必要があります。この<b[RadioGroupの中にRadioButtonを配置してレイアウトすることで、それらが1つのグループとして機能するようになります。
ボタンの選択状態は、チェックボックスと同様に「getChecked」「setChecked」で操作できますが、「現在、どのラジオボタンが選択されているか」は、RadioGroupに用意されている「getCheckedRadioButtonId」を使います。これにより、現在選択されているラジオボタンのID番号が得られますので、これを元にfindViewByIdでコンポーネントを取得すればいいわけです。
では、以下に簡単な例を挙げておきましょう。起動時に2番目のラジオボタンをチェックしておき、それから現在選択されているラジオボタンを調べてそのラベル(表示されているテキスト)を上に表示させています。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※main.xmlの追加
<RadioGroup
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<RadioButton
android:text="@string/radio1_label"
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<RadioButton
android:text="@string/radio2_label"
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RadioGroup>
※string.xmlの追加
<string name="radio1_label">ラジオボタンその1</string>
<string name="radio2_label">ラジオボタンその2</string>
※SampleAppの追加
RadioGroup group = (RadioGroup)this.findViewById(R.id.group);
RadioButton radio1 = (RadioButton)this.findViewById(R.id.radio1);
RadioButton radio2 = (RadioButton)this.findViewById(R.id.radio2);
radio2.setChecked(true);
int selid = group.getCheckedRadioButtonId();
RadioButton selradio = (RadioButton)this.findViewById(selid);
text.setText(selradio.getText());
※関連コンテンツ