ホーム >  Android > CheckBoxとRadioButton

Android -CheckBoxとRadioButton-

チェックボックス

チェックボックスを生成するには、CheckBoxクラスを利用します。

コンストラクタ
  • CheckBox(Context context)
  • CheckBox(Context context, AttributeSet attrs)
  • CheckBox(Context context, AttributeSet attrs, int defStyle)

setChecked(boolean checked) チェックの状態を指定します。
isChecked() チェック状態の取得

ラジオボタン

ラジオボタンを生成するには、1つ1つのボタンをRadioButtonクラスで生成し、RadioGruopクラスで 複数のRadioButtonをまとめます。を利用します。

ラジオボタンは、選択できるのは1つだけです。

コンストラクタ
  • RadioButton(Context context)
  • RadioButton(Context context, AttributeSet attrs)
  • RadioButton(Context context, AttributeSet attrs, int defStyle)

setId(int id) 選択時にどのラジオボタンが選択されたを識別するためにIDを指定します。
check(int id) どのラジオボタンを選択状態するかを指定します。
getCheckRadioButtonId() 選択中のラジオボタンのIDを取得します。

サンプル1 (すべてJavaで記述)

P0403CheckBoxEx.java

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class P0403CheckBoxEx1 extends Activity implements OnClickListener {

  // 改行文字
  private final static String BR = System.getProperty("line.separator");

  private final static int WC = LinearLayout.LayoutParams.WRAP_CONTENT;

  private CheckBox checkBox;
  private RadioGroup radioGroup;
  private Button btn;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // レイアウトの生成
    LinearLayout layout = new LinearLayout(this);
    layout.setBackgroundColor(Color.WHITE);
    layout.setOrientation(LinearLayout.VERTICAL);
    setContentView(layout);

    // チェックボックスの生成
    checkBox = new CheckBox(this);

    // テキスト指定
    checkBox.setText("花は好きですか?");

    // テキスト文字色の指定
    checkBox.setTextColor(Color.rgb(000));

    // チェックボックスのチェック状態の指定
    checkBox.setChecked(true);

    // コンポーネントのサイズ指定
    checkBox.setLayoutParams(new LinearLayout.LayoutParams(WC, WC));

    // レイアウトへのコンポーネントの追加
    layout.addView(checkBox);

    // ラジオボタン(赤)の生成
    RadioButton radio0 = new RadioButton(this);

    // IDの指定
    radio0.setId(0);

    // テキスト指定
    radio0.setText("赤");

    // テキスト文字色指定
    radio0.setTextColor(Color.rgb(000));

    // ラジオボタン(青)の生成
    RadioButton radio_blue = new RadioButton(this);
    radio_blue.setId(1);
    radio_blue.setText("青");
    radio_blue.setTextColor(Color.rgb(000));

    // ラジオグル―プの生成
    radioGroup = new RadioGroup(this);

    // コンポーネント(ラジオボタン赤)の追加
    radioGroup.addView(radio0);

    // コンポーネント(ラジオボタン青)の追加
    radioGroup.addView(radio_blue);

    // チェック済みにするラジオボタンの指定
    radioGroup.check(0);

    // コンポーネント(ラジオグル―プ)のレイアウトサイズ指定
    radioGroup.setLayoutParams(new LinearLayout.LayoutParams(WC, WC));

    // コンポーネット(ラジオグル―プ)の追加
    layout.addView(radioGroup);

    // ボタンの生成
    btn = new Button(this);
    btn.setText("結果表示");
    btn.setOnClickListener(this);
    btn.setLayoutParams(new LinearLayout.LayoutParams(WC, WC));
    layout.addView(btn);

  }

  // ボタンクリック時
  @Override
  public void onClick(View v) {
    // チェックボックスの状態取得
    Boolean isCb = checkBox.isChecked();

    // チェック済のラジオボタンの取得
    RadioButton radioBtn = (RadioButton) findViewById(radioGroup
        .getCheckedRadioButtonId());
    String radioName = radioBtn.getText().toString();

    // ダイアログで結果表示
    showDialog(this"結果""花:" + isCb + BR + "色:" + radioName);
  }

  // ダイアログ
  private static void showDialog(Context context, String title, String text) {

    // AlertDialog.Builderオブジェクト生成
    AlertDialog.Builder ad = new AlertDialog.Builder(context);

    // タイトル指定
    ad.setTitle(title);

    // メッセージ指定
    ad.setMessage(text);

    // OKボタンの設定
    ad.setPositiveButton("OK"null);

    // ダイアログの生成
    ad.create();

    // ダイアログの表示
    ad.show();
  }
}

サンプル2 (リソースをxmlにて記述)

res/values/string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">P0403CheckBoxEx2</string>
    <string name="checkbox">花は好きですか?</string>
    <string name="radio0">赤</string>
    <string name="radio1">青</string>
    <string name="button">結果表示</string>
</resources>


res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff">

    <CheckBox
        android:id="@+id/check_box_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/checkbox"
        android:textColor="#000000"
        android:checked="true"/>

    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <RadioButton
            android:id="@+id/radio_btn0"
      android:checked="true"
            android:text="@string/radio0"
            android:textColor="#000000"/>

        <RadioButton
            android:id="@+id/radio_btn1"
            android:text="@string/radio1"
            android:textColor="#000000"/>

    </RadioGroup>

    <Button
        android:id="@+id/btn_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button" />
</LinearLayout>


P0403CheckBoxEx2.java

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class P0403CheckBoxEx2 extends Activity implements OnClickListener {

  // 改行
  private final static String BR = System.getProperty("line.separator");
  private CheckBox checkBox;
  private RadioGroup radioGroup;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //CheckBoxオブジェクトの取得
    checkBox = (CheckBox) findViewById(R.id.check_box_id);

    //RadioGruopオブジェクトの取得
    radioGroup = (RadioGroup) findViewById(R.id.radio_group);

    //Buttonオブジェクトの取得
    Button btn = (Button) findViewById(R.id.btn_id);
    btn.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    // チェックボックスの状態取得
    Boolean isCb = checkBox.isChecked();

    // チェック済のラジオボタンの取得
    RadioButton radioBtn = (RadioButton) findViewById(radioGroup
        .getCheckedRadioButtonId());
    String radioName = radioBtn.getText().toString();

    // ダイアログで結果表示
    showDialog(this"結果""花:" + isCb + BR + "色:" + radioName);
  }

  private static void showDialog(Context context, String title, String text) {
    // AlertDialog.Builderオブジェクト生成
    AlertDialog.Builder ad = new AlertDialog.Builder(context);

    // タイトル指定
    ad.setTitle(title);

    // メッセージ指定
    ad.setMessage(text);

    // OKボタンの設定
    ad.setPositiveButton("OK"null);

    // ダイアログの生成
    ad.create();

    // ダイアログの表示
    ad.show();
  }
}