| |
■Form Stuff 作成4 - RadioButton
RadioButtonは複数の項目の中、1項目のみ選択する時、使用します。
1.次のようにEclipseから新しいプロジェクトを生成します。
2.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:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Red" /> <RadioButton android:id="@+id/radio_blue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Blue" /> </RadioGroup> </LinearLayout> |
上のXMLを見ると、RadioButton 二つが一つの RadioGroupに属することがわかります。
同一 RadioGroupに属するRadioButtonは一つのみ選択できます。
3.src -> my.HelloFormStuff4 -> HelloFormStuff4.java を変更します。
package my.HelloFormStuff4; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.RadioButton; import android.widget.Toast; public class HelloFormStuff4 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red); final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue); radio_red.setOnClickListener(radio_listener); radio_blue.setOnClickListener(radio_listener); } OnClickListener radio_listener = new OnClickListener() { public void onClick(View v) { // Perform action on clicks RadioButton rb = (RadioButton) v; Toast.makeText(HelloFormStuff4.this, rb.getText(), Toast.LENGTH_SHORT).show(); } }; } |
コードを見ると、
radio_red.setOnClickListener(radio_listener);
radio_blue.setOnClickListener(radio_listener);
上のコードではラジオボタンがクリックされる時にradio_listenerを使用しています。
Toast.makeText(HelloFormStuff4.this, rb.getText(), Toast.LENGTH_SHORT).show();
上のコードではメッセージを出力する時にrb.getText() を使用してmain.xmlに定義されているラジオボタンのtext 値を出力しています。
次は実行結果です。
Red ラジオボタンをクリックすると、下にRed 文字が出力されます。
Blue ラジオボタンをクリックすると、下に Blue 文字が出力されます。
次は 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:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio_red" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" /> <RadioButton android:id="@+id/radio_blue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" /> </RadioGroup> </LinearLayout> |
太字の部分を見ると、android:orientation="horizontal" に変更して、ラジオボタンのtextをandroid:text="男" ,android:text="女" に変更したのがわかります。
実行結果です。