Android控件系列之RadioButton&RadioGroup

Android控件系列之RadioButton&RadioGroup

學習目的:

1、掌握在Android中如何建立RadioGroup和RadioButton

2、掌握RadioGroup的常用屬性

3、理解RadioButton和CheckBox的區別

4、掌握RadioGroup選中狀態變換的事件(監聽器)

RadioButton和CheckBox的區別:

1、單個RadioButton在選中後,通過點擊無法變爲未選中

    單個CheckBox在選中後,通過點擊可以變爲未選中

2、一組RadioButton,只能同時選中一個

     一組CheckBox,能同時選中多個

3、RadioButton在大部分UI框架中默認都以圓形表示

     CheckBox在大部分UI框架中默認都以矩形表示

RadioButton和RadioGroup的關係:

1、RadioButton表示單個圓形單選框,而RadioGroup是可以容納多個RadioButton的容器

2、每個RadioGroup中的RadioButton同時只能有一個被選中

3、不同的RadioGroup中的RadioButton互不相干,即如果組A中有一個選中了,組B中依然可以有一個被選中

4、大部分場合下,一個RadioGroup中至少有2個RadioButton

5、大部分場合下,一個RadioGroup中的RadioButton默認會有一個被選中,並建議您將它放在RadioGroup中的起始位置

XML佈局:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?> 2  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 > 7  <TextView 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:text="請選擇您的性別:" 11 android:textSize="9pt" 12 /> 13  <RadioGroup android:id="@+id/radioGroup" android:contentDescription="性別" android:layout_width="wrap_content" android:layout_height="wrap_content"> 14 <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/radioMale" android:text="男" android:checked="true"></RadioButton> 15 <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/radioFemale" android:text="女"></RadioButton> 16  </RadioGroup> 17 <TextView 18 android:id="@+id/tvSex" 19 android:layout_width="fill_parent" 20 android:layout_height="wrap_content" 21 android:text="您的性別是:男" 22 android:textSize="9pt" 23 /> 24 </LinearLayout>
複製代碼

選中項變更的事件監聽:

當RadioGroup中的選中項變更後,您可能需要做一些相應,比如上述例子中,性別選擇“女”後下面的本文也相應改變,又或者選擇不同的性別後,出現符合該性別的頭像列表進行更新,女生不會喜歡使用大鬍子作爲自己的頭像。

如果您對監聽器不熟悉,可以閱讀Android控件系列之Button以及Android監聽器

後臺代碼如下:

複製代碼
1 TextView tv = null;//根據不同選項所要變更的文本控件 2 @Override 3 public void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 6 setContentView(R.layout.main); 7 8 //根據ID找到該文本控件 9 tv = (TextView)this.findViewById(R.id.tvSex); 10 //根據ID找到RadioGroup實例 11 RadioGroup group = (RadioGroup)this.findViewById(R.id.radioGroup); 12 //綁定一個匿名監聽器 13 group.setOnCheckedChangeListener(new OnCheckedChangeListener() { 14 15 @Override 16 public void onCheckedChanged(RadioGroup arg0, int arg1) { 17 // TODO Auto-generated method stub 18 //獲取變更後的選中項的ID 19 int radioButtonId = arg0.getCheckedRadioButtonId(); 20 //根據ID獲取RadioButton的實例 21 RadioButton rb = (RadioButton)MyActiviy.this.findViewById(radioButtonId); 22 //更新文本內容,以符合選中項 23 tv.setText("您的性別是:" + rb.getText()); 24 } 25 }); 26 }
複製代碼

效果如下:

總結:

本文介紹了Android中如何使用RadioGroup和RadioButton,對比了RadioButton和CheckBox的區別,並實現了自定義的RadioGroup中被選中RadioButton的變更監聽事件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章