1. 程式人生 > >Android控制元件系列之RadioButton與RadioGroup的基本使用

Android控制元件系列之RadioButton與RadioGroup的基本使用

RadioButton即單選框,是一種基礎的UI控制元件。RadioGroup為我們提供了RadioButton單選按鈕的容器,RadioButton通常放於RadioGroup容器中進行使用。RadioButton的選中狀態,在xml檔案中可以使用android:checked=""來進行設定,選中就設定為true,沒選中就設定為false。

這裡先貼上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" >

<LinearLayout
android:id="@+id/ll_sex"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:orientation="horizontal" >

<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="性別:"
android:textSize="15sp" />

<RadioGroup
android:id="@+id/sex"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >

<RadioButton
android:id="@+id/nan"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="true"
android:gravity="center"
android:text="男" />

<RadioButton
android:id="@+id/nv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="false"
android:text="女" />
</RadioGroup>
</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_below="@+id/ll_sex"
android:orientation="horizontal" >

<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="愛好:"
android:textSize="15sp" />

<RadioGroup
android:id="@+id/hobby"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >

<RadioButton
android:id="@+id/basketball"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="true"
android:gravity="center"
android:text="籃球" />

<RadioButton
android:id="@+id/table_tenis"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="false"
android:text="乒乓球" />

<RadioButton
android:id="@+id/badminton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="false"
android:text="羽毛球" />
</RadioGroup>
</LinearLayout>

</RelativeLayout>

這邊我介紹兩種獲取RadioButton的監聽事件處理方法:

方法一:通過獲取點選的id來例項化並獲取選中狀態的RadioButton控制元件

// 例項化控制元件
		sex = (RadioGroup) findViewById(R.id.sex);

		// 方法一監聽事件,通過獲取點選的id來例項化並獲取選中狀態的RadioButton控制元件
		sex.setOnCheckedChangeListener(new OnCheckedChangeListener() {

			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// 獲取選中的RadioButton的id
				int id = group.getCheckedRadioButtonId();
				// 通過id例項化選中的這個RadioButton
				RadioButton choise = (RadioButton) findViewById(id);
				// 獲取這個RadioButton的text內容
				String output = choise.getText().toString();
				Toast.makeText(MainActivity.this, "你的性別為:" + output, Toast.LENGTH_SHORT).show();
			}
		});

效果圖:


方法二:通過if的方法來對獲取的id與例項化的xml中的RadioButton的ID進行判斷,找出選中狀態的RadioButton控制元件
hobby = (RadioGroup) findViewById(R.id.hobby);
		baskeball = (RadioButton) findViewById(R.id.basketball);
		table_tennis = (RadioButton) findViewById(R.id.table_tenis);
		badminton = (RadioButton) findViewById(R.id.badminton);
		// 方法二,通過if的方法來對獲取的id與例項化的xml中的RadioButton的ID進行判斷,找出選中狀態的RadioButton控制元件
		hobby.setOnCheckedChangeListener(new OnCheckedChangeListener() {

			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {

				if (baskeball.getId() == checkedId) {
					shuchu = baskeball.getText().toString();
				}
				if (table_tennis.getId() == checkedId) {
					shuchu = table_tennis.getText().toString();
				}
				if (badminton.getId() == checkedId) {
					shuchu = badminton.getText().toString();
				}
				Toast.makeText(MainActivity.this, "你喜歡的體育運動為:" + shuchu, Toast.LENGTH_SHORT).show();

			}
		});
效果圖:


點選下載

有話要說:這是博主第一次寫部落格,有些的不好的地方希望可以見諒,如果感覺還可以的,希望多多支援!!