main.xmlレイアウトを開き
ラジオボタンをグループ化するためにレイアウトからRadioGroupを画面にドラッグドロップします。
次にRadioGroupにRadioButtonを配置するのですが、右のアウトラインからRadioGroupを選択し「+」でRadioButtonを追加します。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> <RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/RadioButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton01"> </RadioButton> <RadioButton android:id="@+id/RadioButton02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton02"> </RadioButton> </RadioGroup> </LinearLayout>
ラジオボタンの選択状態が変化したときの処理を追加します。
まずはMainActivityクラスにandroid.widget.RadioGroup.OnCheckedChangeListenerインターフェースを実装する方法
package my.study.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class MainActivity extends Activity implements OnCheckedChangeListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//ラジオグループオブジェクトを取得する
RadioGroup rdg = (RadioGroup)findViewById(R.id.RadioGroup01);
//ラジオボタンにイベントリスナーを設定する
rdg.setOnCheckedChangeListener(this);
//ラジオボタン1を選択状態にする
RadioButton rdo1 = (RadioButton)findViewById(R.id.RadioButton01);
rdo1.setChecked(true);
}
@Override
public void onCheckedChanged(RadioGroup rgoup, int id) {
RadioButton rdo = (RadioButton)findViewById(id);
Toast.makeText(this, "選択したラジオボタン:" + rdo.getText() , Toast.LENGTH_SHORT).show();
}
}
次は無名クラスを使った方法
package my.study.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//ラジオグループオブジェクトを取得する
RadioGroup rdg = (RadioGroup)findViewById(R.id.RadioGroup01);
//ラジオボタンにイベントリスナーを設定する
rdg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rdo = (RadioButton)findViewById(checkedId);
Toast.makeText(MainActivity.this, "選択したラジオボタン:" + rdo.getText() , Toast.LENGTH_SHORT).show();
}});
//ラジオボタン1を選択状態にする
RadioButton rdo1 = (RadioButton)findViewById(R.id.RadioButton01);
rdo1.setChecked(true);
}
}
フィールドを利用した方法
package my.study.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//ラジオグループオブジェクトを取得する
RadioGroup rdg = (RadioGroup)findViewById(R.id.RadioGroup01);
//ラジオボタンにイベントリスナーを設定する
rdg.setOnCheckedChangeListener(RadioGroup01_OnCheckedChangeListener);
//ラジオボタン1を選択状態にする
RadioButton rdo1 = (RadioButton)findViewById(R.id.RadioButton01);
rdo1.setChecked(true);
}
private RadioGroup.OnCheckedChangeListener RadioGroup01_OnCheckedChangeListener =
new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rdo = (RadioButton)findViewById(checkedId);
Toast.makeText(MainActivity.this, "選択したラジオボタン:" + rdo.getText() , Toast.LENGTH_SHORT).show();
}
};
}

0 件のコメント:
コメントを投稿