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 件のコメント:
コメントを投稿