スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

ラジオボタン

ラジオボタンは、複数の選択肢(グループ)のうち一つだけ選択させる場合に使われるウィジェットです。

XMLファイルでは、ひとつのRadioGroupタグの中に複数のRadioButtonタグを記述する形を取ります。

RadioGroupとは、たとえば男か女かをラジオボタンで選択させる場合、この「男と女」というくくりがひとつのRadioGroupです。

では、簡単なサンプルを掲載します。

<?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/radioGroup1"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton
android:id="@+id/radioButton1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Red" >
</RadioButton>
<RadioButton
android:id="@+id/radioButton2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Blue"
android:checked="true">
</RadioButton>
<RadioButton
android:id="@+id/radioButton3"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Yellow" >
</RadioButton>
</RadioGroup>
</LinearLayout>


Javaファイルは特に変わったところはありません。

package sample.basic;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}


実行結果:
20110829_1


あらかじめオンにしておきたいボタンがあったら、

android:checked="true"

で指定します。


OnCheckedChangeListener


では、ボタンによってテキストの文字サイズを変化させるプログラムです。

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:id="@+id/radioGroup1"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton
android:id="@+id/radioButton1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="文字サイズ 大" >
</RadioButton>
<RadioButton
android:id="@+id/radioButton2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="文字サイズ 中"
android:checked="true">
</RadioButton>
<RadioButton
android:id="@+id/radioButton3"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="文字サイズ 小" >
</RadioButton>
</RadioGroup>
</LinearLayout>



HelloAndroid.java
package sample.basic;

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

public class HelloAndroid extends Activity implements OnCheckedChangeListener{

private RadioGroup radioGroup1;
private RadioButton radioButton1,radioButton2,radioButton3;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

radioGroup1=(RadioGroup)findViewById(R.id.radioGroup1);
radioGroup1.setOnCheckedChangeListener(this);
}

public void onCheckedChanged(RadioGroup group, int buttonId){

radioButton1=(RadioButton)findViewById(R.id.radioButton1);
radioButton2=(RadioButton)findViewById(R.id.radioButton2);
radioButton3=(RadioButton)findViewById(R.id.radioButton3);

if(radioButton1.isChecked() == true) {
radioButton1.setTextSize(24.0f);
}else if(radioButton2.isChecked() == true){
radioButton2.setTextSize(15.0f);
}else{
radioButton3.setTextSize(8.0f);
}
}
}


ラジオボタンを選択するというイベントに対して設定できるリスナは、android.widget.RadioGroup.OnCheckedChangeListenerです。

このインタフェースを継承すると、onCheckedChanged()メソッドの実装が必要です。

public abstract void onCheckedChanged (RadioGroup group, int checkedId)



isChecked()メソッドは、チェック状態を取得できるメソッドです。

さらに、文字のサイズを変更するのはsetTextSize()メソッドです。引数に文字サイズをfloat型のピクセル値で指定します。

実行結果:
20110829_2


ちなみに、switch文を使って以下のように書くこともできます。

package sample.basic;

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

public class HelloAndroid extends Activity implements OnCheckedChangeListener{

private RadioGroup radioGroup1;
private RadioButton radioButton1,radioButton2,radioButton3;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

radioGroup1=(RadioGroup)findViewById(R.id.radioGroup1);
radioGroup1.setOnCheckedChangeListener(this);
}

public void onCheckedChanged(RadioGroup group, int buttonId){

radioButton1=(RadioButton)findViewById(R.id.radioButton1);
radioButton2=(RadioButton)findViewById(R.id.radioButton2);
radioButton3=(RadioButton)findViewById(R.id.radioButton3);

if(group==radioGroup1){
switch(buttonId){
case R.id.radioButton1:
radioButton1.setTextSize(24.0f);
break;
case R.id.radioButton2:
radioButton2.setTextSize(15.0f);
break;
default:
radioButton3.setTextSize(8.0f);
break;
}
}
}
}


関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/43-3b8683da
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。