●android.widget.RadioButton


■ラジオボタンを表示・非表示にする


android.widget.RadioButton rb=(android.widget.RadioButton)findViewById(R.id.radioButton);

if (android.widget.RadioButton.VISIBLE == rb.getVisibility()){
    //もし見えたら、見えなくする
    rb.setVisibility(android.widget.CheckBox.INVISIBLE);
}else {
    //見えなかったら、見えるようにする
    rb.setVisibility(android.widget.CheckBox.VISIBLE);
}



■ラジオボタンを有効・無効にする


android.widget.RadioButton rb=(android.widget.RadioButton)findViewById(R.id.radioButton);

if (true == rb.isEnabled()){
    //有効なら無効化する
    rb.setEnabled(false);
}else {
    //無効なら有効化する
    rb.setEnabled(true);
}



■状態が切り替わった時のイベントを取る


android.widget.RadioButton rb=(android.widget.RadioButton)findViewById(R.id.radioButton);

cb.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(android.widget.CompoundButton cb,boolean checked){
        if(checked){
            android.util.Log.d("radiobutton","ON");
        }else {
            android.util.Log.d("radiobutton","OFF");
        }
    }
});

ラジオボタンを操作した場合ではなくても、チェック状態が切り替わったタイミングで呼び出されます



■チェックが入っているのかを取得する


cb.isChecked()



■チェックを入れたり外したりする


チェックを入れる
cb.setChecked(true);

チェックを外す
cb.setChecked(false);



■XMLでラジオボタングループで囲んで一つのチェックしか入れられなくする


<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">



</RadioGroup>

ラジオボタンを<RadioGroup> で囲むことにより自動的に連動します。



■コードでラジオボタングループで囲んで一つのチェックしか入れられなくする


android.widget.RadioButton rb,rb2;
android.widget.RadioGroup rg;
android.widget.RelativeLayout rl=(android.widget.RelativeLayout)findViewById(R.id.activity_main);
rb=new android.widget.RadioButton(this);
rb.setText("test1");
rb2=new android.widget.RadioButton(this);
rb2.setText("test2");
rg=new android.widget.RadioGroup(this);
rg.addView(rb);
rg.addView(rb2);
rl.addView(rg);

ラジオボタンを二つ動的に作りそれをラジオグループにaddViewで追加して、画面上のRelativeLayoutに追加しています。
これだけで自動的に一つしか選択できないラジオボタンができます。



■ラジオグループ内の状態が切り替わったイベントを取る


rg.setOnCheckedChangeListener(new android.widget.RadioGroup.OnCheckedChangeListener() {
    public void onCheckedChanged(android.widget.RadioGroup rb,int id){
            if(-1!=id) {//idに-1が来る場合は何も選択されてない。
                android.util.Log.d("radiobutton", ""+id);
            }
    }
});




▲トップページ > android