Android控制元件系列之RadioButton與RadioGroup的基本使用
阿新 • • 發佈:2019-01-04
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(); } });
效果圖:
效果圖: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(); } });
有話要說:這是博主第一次寫部落格,有些的不好的地方希望可以見諒,如果感覺還可以的,希望多多支援!!