ラジオボタン(RadioButton)を使用するには

TOP > Androidアプリ開発日誌 >  ラジオボタン(RadioButton)を使用するには

ラジオボタン(RadioButton)のサンプルソースと解説(Android)

RadioButtonの使用例 android.widget パッケージの RadioGroup クラス、 android.widget パッケージの RadioButton クラスを使用します。

ソース「 /src/jp.mediawing.android.test/TestActivity.java 」

package jp.mediawing.android.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

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

        RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rdi_grp);
        // 指定した ID のラジオボタンをチェックします
        radioGroup.check(R.id.rdi_2);
        // チェックされているラジオボタンの ID を取得します
        RadioButton radioButton = (RadioButton) findViewById(radioGroup.getCheckedRadioButtonId());
        
        // ラジオグループのチェック状態が変更された時に呼び出されるコールバックリスナーを登録します
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            // ラジオグループのチェック状態が変更された時に呼び出されます
            // チェック状態が変更されたラジオボタンのIDが渡されます
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton = (RadioButton) findViewById(checkedId);
                Toast.makeText(TestActivity.this,
                        "onCheckedChanged():" + radioButton.getText(),
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
}

レイアウトファイル「 /res/layout/main.xml 」


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

    <RadioGroup android:id="@+id/rdi_grp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <RadioButton android:id="@+id/rdi_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ラジオ1" />
        <RadioButton android:id="@+id/rdi_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ラジオ2" />
        <RadioButton android:id="@+id/rdi_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ラジオ3" />
    </RadioGroup>

</LinearLayout>