Android控件系列之RadioButton&RadioGroup

學習目的:android

一、掌握在Android中如何創建RadioGroup和RadioButton框架

二、掌握RadioGroup的經常使用屬性ide

三、理解RadioButton和CheckBox的區別佈局

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

 

RadioButton和CheckBox的區別:this

一、單個RadioButton在選中後,經過點擊沒法變爲未選中spa

    單個CheckBox在選中後,經過點擊能夠變爲未選中code

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

     一組CheckBox,能同時選中多個事件

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

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

RadioButton和RadioGroup的關係:

一、RadioButton表示單個圓形單選框,而RadioGroup是能夠容納多個RadioButton的容器

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

三、不一樣的RadioGroup中的RadioButton互不相干,即若是組A中有一個選中了,組B中依然能夠有一個被選中

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

五、大部分場合下,一個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的變動監聽事件。

相關文章
相關標籤/搜索