Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android開發之RadioGroup與RadioButton控件使用

Android開發之RadioGroup與RadioButton控件使用

編輯:關於android開發

Android開發之RadioGroup與RadioButton控件使用


RadioButton即單選按鈕,它在開發中提供了一種“多選一”的操作模式,是Android開發中常用的一種組件,例如在用戶注冊時,選擇性別時只能從“男”或者“女”中選擇一個。與Web開發不同的是,在Android中可以使用RadioGroup來定義單選按鈕組件。

RadioGroup類的定義如下圖所示:

 





RadioGroup提供的只是RadioButton單選按鈕的容器,我們可以在該容器中添加多個RadioButton方可使用,要設置單選按鈕的內容,則需要使用RadioButton類。

   RadioButton類的定義如下圖所示:

java.lang.Object 
因此該組件與Button按鈕組件的使用類似,區別在於定義的RadioButton組件必須放在RadioGroup組件中。

-----------------------------------------------------------------------------------------------------


RadioGroup的公共方法

public void addView (View child, int index, ViewGroup.LayoutParams params)

使用指定的布局參數添加一個子視圖

參數

child 所要添加的子視圖

index 將要添加子視圖的位置

params 所要添加的子視圖的布局參數

 

public void check (int id)

如果傳遞-1作為指定的選擇標識符來清除單選按鈕組的勾選狀態,相當於調用clearCheck()操作

參數

  id 該組中所要勾選的單選按鈕的唯一標識符(id)

參見

  getCheckedRadioButtonId()

  clearCheck()

 

public void clearCheck ()

清除當前的選擇狀態,當選擇狀態被清除,則單選按鈕組裡面的所有單選按鈕將取消勾選狀態,getCheckedRadioButtonId()將返回null

參見

  check(int)

  getCheckedRadioButtonId()

 

public RadioGroup.LayoutParams generateLayoutParams (AttributeSet attrs)

基於提供的屬性集合返回一個新的布局參數集合

參數

  attrs 用於生成布局參數的屬性

返回值

  返回一個ViewGroup.LayoutParams或其子類的實例

 

public int getCheckedRadioButtonId ()

返回該單選按鈕組中所選擇的單選按鈕的標識ID,如果沒有勾選則返回-1

返回值

  返回該單選按鈕組中所選擇的單選按鈕的標識ID

參見

  check(int)

clearCheck()

 

public void setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener listener)

注冊一個當該單選按鈕組中的單選按鈕勾選狀態發生改變時所要調用的回調函數

參數

  listener 當單選按鈕勾選狀態發生改變時所要調用的回調函數

 

public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener)

注冊一個當子內容添加到該視圖或者從該視圖中移除時所要調用的回調函數

參數

listener 當層次結構發生改變時所要調用的回調函數

 

  受保護方法

protected LinearLayout.LayoutParams generateDefaultLayoutParams ()

當布局為垂直方向時,將返回一個寬度為“填充父元素”(MATCH_PARENT),高度為“包裹內容”的布局參數集合,如果為水平方向時,將返回寬度為“包裹內容”,高度為“填充父元素”的布局參數集合

(match_parent即為fill_parent,public static final int FILL_PARENT/MATCH_PARENT = -1 )

  返回值

返回一個默認的布局參數集合

 

protected void onFinishInflate ()

當視圖從XML中加載,且相應的子視圖被添加之後,調用該方法,

即使子類重寫了該方法,應該確保去調用父類的方法(通常放在方法在第一句),這樣才能完成相應的調用參數

  返回值

返回一個默認的布局參數集合

------------------------------------------------------------------------------------------------------

   Layout布局文件代碼如下:
   
在RadioGroup中使用

android:orientation="horizontal"
來設定內部RadioButton的排列方式,horizontal為水平,vertical為垂直。

android:checkedButton="@+id/male"
設置RadioGroup內默認選中的RadioButton。



   單選按鈕RadioGroup上我們可以進行事件處理操作,當用戶選中某個選項之後將觸發相應的監聽器進行處理,該注冊事件監聽為OnCheckedChangeListener,具體方法為:
public void setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener listener)

  事件代碼如下:


/**RadioGroup與RadioButton**/ sexRadioGroup = (RadioGroup)findViewById(R.id.rgSex); male = (RadioButton)findViewById(R.id.male); female = (RadioButton)findViewById(R.id.female); sexRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { String msg = ""; if(male.getId()==checkedId){ msg = "當前選中的性別為:"+male.getText().toString(); } if(female.getId()==checkedId){ msg = "當前選中的性別為:"+female.getText().toString(); } Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show(); } });

效果如下圖所示:


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved