Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android RadioGroup

RadioGroup中使用類組單選按鈕。如果我們選中一個單選按鈕屬於一個單選按鈕組,它會自動取消選中同一組內的任何先前檢查的單選按鈕。

RadioGroup 屬性

以下是RadioGroup中控件有關的重要屬性。可以檢查Android官方文檔的屬性和相關方法的完整列表,可以用它來改變這些屬性在運行時。

屬性

描述

android:checkedButton

這是子單選按鈕應該在默認情況下此單選組內進行檢查的ID

繼承自android.view.View類:

屬性

描述

android:background

可拉伸作爲背景

android:contentDescription

定義文本簡要描述了視圖內容

android:id

對此視圖提供一個標識符名稱

android:onClick

在本視圖的上下文視圖被點擊時調用的方法的名稱

android:visibility

控制視圖的初始可視性

示例

這個例子將帶通過簡單的步驟顯示瞭如何創建自己的Android應用程序使用線性佈局和RadioGroup。

步驟

描述

1

使用Android Studio創建Android應用程序,創建一個項目:RadioGroup

2

修改src/MainActivity.java文件,添加一個click事件

2

修改res/layout/activity_main.xml文件的默認內容包括AndroidUI控件

3

Define required constants in res/values/strings.xml file

4

運行該應用程序啓動 Android模擬器並驗證應用程序的結果

以下是主活動文件 src/com.yiibai.radiogroup/MainActivity.java 的內容。這個文件可以包括每個生命週期的基本方法。

package com.example.guidemo9; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class MainActivity extends Activity { private RadioGroup radioGroupCricket; private RadioGroup radioGroupTutorials; private RadioButton radioBtn1; private RadioButton radioBtn2; private Button btnCricketer; private Button btnYiiBai; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // group1 addListenerRadioGroup1(); // group2 addListenerRadioGroup2(); } private void addListenerRadioGroup2() { radioGroupTutorials = (RadioGroup) findViewById (R.id.radioGroup2); btnYiiBai = (Button) findViewById(R.id.button2); btnYiiBai.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // get selected radio button from radioGroupTutorials int selected = radioGroupTutorials.getCheckedRadioButtonId(); radioBtn2 = (RadioButton) findViewById(selected); Toast.makeText(MainActivity.this, radioBtn2.getText(), Toast.LENGTH_SHORT).show(); } }); } private void addListenerRadioGroup1() { radioGroupCricket = (RadioGroup) findViewById (R.id.radioGroup1); btnCricketer = (Button) findViewById(R.id.button1); btnCricketer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // get selected radio button from radioGroupCricket int selected = radioGroupCricket.getCheckedRadioButtonId(); radioBtn1 = (RadioButton) findViewById(selected); Toast.makeText(MainActivity.this, radioBtn1.getText(), Toast.LENGTH_SHORT).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { /* Inflate the menu; this adds items to the action bar if it
is present */ getMenuInflater().inflate(R.menu.main, menu); return true; } }

下面是 res/layout/activity_main.xml 文件的內容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/example_radiogroup" /> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="24dp" > <RadioButton android:id="@+id/radioGroupButton0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/example_radiogroup1button0" /> <RadioButton android:id="@+id/radioGroupButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/example_radiogroup1button1" /> <RadioButton android:id="@+id/radioGroupButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/example_radiogroup1button2" /> <RadioGroup android:id="@+id/radioGroup2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/radioGroup1" android:layout_marginRight="15dp" > <RadioButton android:id="@+id/radioGroup2Button0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/example_radiogroup2button0" /> <RadioButton android:id="@+id/radioGroup2Button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/example_radiogroup2button1" /> <RadioButton android:id="@+id/radioGroup2Button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/example_radiogroup2button2" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/radioGroup1" android:layout_marginTop="25dp" android:text="@string/group_button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignParentRight="true" android:layout_marginRight="14dp" android:text="@string/group_button2" />

下面文件 res/values/strings.xml 的內容中定義兩個新的常量:

<string name="app_name">RadioGroupDemo - yiibai.com <string name="action_settings">Settings <string name="example_radiogroup">Example showing RadioGroup <string name="example_radiogroup1button0">Sachin <string name="example_radiogroup1button1">Saurav <string name="example_radiogroup1button2">Rahul <string name="example_radiogroup2button0">MySQL 教程 <string name="example_radiogroup2button1">SQL 教程 <string name="example_radiogroup2button2">SQLite 教程 <string name="group_button1">cricketer <string name="group_button2">yiibai

以下是AndroidManifest.xml 文件的默認內容:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yiibai.guidemo9" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.yiibai.guidemo9.MainActivity" android:label="@string/app_name" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />

我們嘗試運行GUIDemo9應用程序。Eclipse的AVD上安裝的應用程序,並啓動它,如果一切設置和應用都沒有問題,它會顯示以下模擬器窗口:

下面的屏幕會出現,我們這裏有2個RadioGroups(即radioGroupTutorials 和 radioGroupCricket)。cricketer 按鈕被點擊後檢查「Rahul」單選按鈕: 

Android

下面的屏幕會出現,如果我們檢查一個屬於到 radioGroupTutorials 單選組單選按鈕,它會自動取消選中任何先前檢查的單選按鈕內相同 radioGroupTutorials 組。 按鈕被點擊後檢查「SQL Tutorial」單選按鈕:

Android

以上代碼下載地址: http://pan.baidu.com/s/1qWJSdVA

練習:

建議嘗試上面的例子中,不同屬性的單選按鈕在佈局XML文件,以及在編程時有不同的外觀的單選按鈕。儘量使其可編輯,更改字體顏色,字體,寬度,字體大小等看到結果。也可以嘗試多個單選按鈕控件,在上面的例子在一個活動。