單選按鈕RadioButton使用
1、單選按鈕使用
在預設情況先,單選按鈕顯示為一個圓形圖示,並且在該圖示旁邊放置一些說明性文字。在程式中,一般將多個單選按鈕放置在按鈕組裡面,使用這些按鈕表現出來某些功能,當用戶選中某個單選按鈕後,按鈕組中的其他按鈕將被自動取消選中狀態。在Android中,單選按鈕使用RadioButton表示,而RadioButton有是Button的子類,所有單選按鈕可以直接使用Button支援的各種屬性。
在Android中,可以使用兩種方法向螢幕中新增單選按鈕:一種是通過XML佈局檔案中使用<RadioButton>標記新增;另一種是在Java中,通過new關鍵字建立。在XML中通過<RadioButton>新增單選按鈕如下:
<RadioButton
android:id="@+id/ID號"
android:text="顯示文字"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true|false"
>
</RadioButton>
RadioButton元件中的android:checked 屬性用於指定選中狀態,屬性值為true,表示選中;屬性值為false時,表示取消選中,預設為false。
通常情況下,RadioButton元件需要與RadioGroup元件一起使用,組成一個單選按鈕組。在XML佈局檔案中,新增RadioGroup元件的基本格式如下:
<RadioGroup android:id="@+id/ID號" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <!-- 新增多個RadioGroup元件 --> </RadioGroup>
2、獲取單選按鈕組中選中項的值
獲取單選按鈕組中選中項的值,通常存在以下兩種情況:一種是在改變單選按鈕組的值時獲取,另一種是在單擊其他按鈕時獲取。
1)在改變單選按鈕組的值時獲取
在改變單選按鈕組的值來獲取選中項的值時,首先需要獲取單選按鈕組,然後為其新增OnCheckedChangeListener,並在其onCheckedChange()方法中根據引數checkedIdea獲取被選中的單選按鈕,並通過其getText()方法獲取該單選按鈕對應的值。程式碼實現如下:
RadioGroup sex = (RadioGroup)findViewById(R.id.radoiGroup);
sex.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton r = (RadioButton)findViewById(checkedId);
r.getText();//獲取被選中的單選按鈕的值
}
});
2)單擊其他按鈕時獲取
單擊其他按鈕時獲取選中項的值,首先需要在該按鈕單擊事件監聽器的onClick()方法中,通過for迴圈語句遍歷當前單選按鈕組,並根據被遍歷到的單選按鈕組的isChecked()方法判斷該按鈕是否被選中,當被選中時,通過單選按鈕的getText()方法獲取對應的值。
final RadioGroup sex = (RadioGroup)findViewById(R.id.radoiGroup);
Button submitBtn = (Button)findViewById(R.id.button);
submitBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0; i<sex.getChildCount(); i++){
RadioButton r = (RadioButton)sex.getChildAt(i);
if(r.isChecked()){
r.getText();
break;
}
}
}
});