チェックボックスとラジオボタン


アプリケーションでは、さまざまなインターフェイスが用いられます。androidにも、多くのGUI用のビュー(部品)が用意されています。それらの中から基本的なものについて、使ってみることにしましょう。

まずは、チェックボックスとラジオボタンです。チェックボックスは、<CheckBox>というタグで用意することができます。これは非常に単純ですね。

ラジオボタンの場合には、複数のボタンをグループ化して選択できなければいけません。このため、グループを作成する<RadioGroup>を用意し、その中に<RadioButton>タグを用意して作成をします。これにより、グループ内のボタンが常に1つだけ選択されるようになります。

Javaのクラス内からこれらを操作する場合には、findViewByIdで得たオブジェクトを「CheckBox」「RadioButton」クラスにキャストして利用します。選択状態は、これらの「getChecked」「setChecked」メソッドで操作することができます。getCheckedは現在のチェック状態を真偽値で返し、setCheckedは真偽値を引数に指定して選択状態を変更します。

また、ラジオボタンに関しては、「現在、どのボタンが選択されているか」ということを調べる必要もあるでしょう。これは、ラジオボタンではなく、RadioGroupで調べることができます。RadioGroupの「getCheckedRadioButtonId」というメソッドを呼び出すことで、選択されているラジオボタンのIDを取得できます。

実際に、簡単な利用例を挙げておきましょう。

※main.xml
<CheckBox
  android:id="@+id/check1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/check1"
/>
<RadioGroup
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
>
  <RadioButton
  android:id="@+id/radio1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/radio1"
  />
  <RadioButton
  android:id="@+id/radio2"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/radio2"
  />
</RadioGroup>


※MyAndyクラスのonCreate
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  final TextView text1 = (TextView) findViewById(id.text1);
  final CheckBox check1 = (CheckBox)findViewById(id.check1);
  final RadioButton radio1 = (RadioButton)findViewById(id.radio1);
  final RadioButton radio2 = (RadioButton)findViewById(id.radio1);

  check1.setChecked(true);
  radio1.setChecked(true);
}

ラジオボタンとチェックボックスの利用例。