逆引きAndroid入門 ラジオボタン(RadioButton)を使用するには

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

概要

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

 

ソースコード

package com.adakoda.android.radiobuttonsample;

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

import com.adakoda.android.radiobuttonsample.R.id;

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

        RadioGroup radioGroup = (RadioGroup) findViewById(id.radiogroup);
        // 指定した ID のラジオボタンをチェックします
        radioGroup.check(id.radiobutton_green);
        // チェックされているラジオボタンの 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(RadioButtonSampleActivity.this,
                        "onCheckedChanged():" + radioButton.getText(),
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
}

 

リソース

<?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/radiogroup"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <RadioButton android:id="@+id/radiobutton_red"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Red" />
        <RadioButton android:id="@+id/radiobutton_green"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Green" />
        <RadioButton android:id="@+id/radiobutton_blue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Blue" />
    </RadioGroup>
</LinearLayout>

 

実行結果

67-a-1-1.PNG