安卓开发_单选按钮控件(RadioButton)的简单使用

最近复习安卓基础的时候发现没有写关于单选按钮、复选按钮的博客,可能因为以前学习的时候感觉太简单了就没有写,现在补上吧

 

当我们在各种客户端注册账号的时候,会有几项单选项,比如选择您的性别。下面就是学习怎么实现这种效果

 

一、安卓中,单选按钮用RadioButton表示,因为RadioButton是Button的子类,所以可以使用Button的各种属性

RadioButton一般是不单独使用的需要结合RadioGroup控件一起使用,将若干个RadioButton放在一个RadioGroup中,那么将只能选择RadioGroup中的某一个RadioButton

比如讲 语文、数学,英语放在“你最喜欢的课程中” 那么用户将只能选择一个课程

 

二、使用

首先看下布局文件

 1 <?xml version="1.0" encoding="utf-8"?>

 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

 3     android:layout_width="match_parent"

 4     android:layout_height="match_parent"

 5     android:orientation="vertical" >

 6     

 7       <TextView 

 8             android:layout_width="wrap_content"

 9             android:layout_height="wrap_content"

10             android:text="性别"

11             android:textSize="18dp"/>

12     <RadioGroup 

13         android:layout_width="wrap_content"

14         android:layout_height="wrap_content"

15         android:id="@+id/id_radiogroup"

16         android:orientation="horizontal"

17         

18         >

19      

20         <RadioButton 

21             android:layout_width="wrap_content"

22             android:layout_height="wrap_content"

23             android:id="@+id/radio_1"

24             android:checked="true"  //设置默认已被选择中

25             android:text=""

26             />

27         <RadioButton 

28             android:layout_width="wrap_content"

29             android:layout_height="wrap_content"

30             android:id="@+id/radio_2"

31             android:text=""

32             />

33 

34     </RadioGroup>

35     <Button 

36         android:layout_width="wrap_content"

37         android:layout_height="wrap_content"

38         android:id="@+id/tijiao"

39         android:text="提交"/>

40 </LinearLayout>

可以看到两个RadioButton被放到了一个RadioGroup中,这两个RadioButton的值分别“男”,“女”

表示我们只能选择其中的任意一项选项

效果图:

安卓开发_单选按钮控件(RadioButton)的简单使用

 

下面再看JAVA文件

 1 package base_ui;

 2 

 3 import com.example.allcode.R;

 4 

 5 import android.app.Activity;

 6 import android.os.Bundle;

 7 import android.view.View;

 8 import android.view.View.OnClickListener;

 9 import android.widget.Button;

10 import android.widget.RadioButton;

11 import android.widget.RadioGroup;

12 import android.widget.RadioGroup.OnCheckedChangeListener;

13 import android.widget.Toast;

14 

15 public class Ui_RadioButton extends Activity{

16     private RadioGroup radiogroup;

17     private RadioButton radio_one;

18     private RadioButton radio_two;

19     private Button tijiao;

20     String str; //存放点击的按钮的值

21     @Override

22     protected void onCreate(Bundle savedInstanceState) {

23         // TODO Auto-generated method stub

24         super.onCreate(savedInstanceState);

25         setContentView(R.layout.base_ui_radiobutton);

26         

27         radiogroup = (RadioGroup) findViewById(R.id.id_radiogroup);

28         radio_one = (RadioButton) findViewById(R.id.radio_1);

29         radio_two = (RadioButton) findViewById(R.id.radio_2);

30         tijiao = (Button) findViewById(R.id.tijiao);

31         

32         //改变单选按钮组的值时的响应事件

33         radiogroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

34             

35             @Override

36             public void onCheckedChanged(RadioGroup group, int checkedId) {

37                 // TODO Auto-generated method stub

38                 RadioButton radio_button =  (RadioButton)findViewById(checkedId);

39                 str = radio_button.getText().toString().trim();//获取被选中的单选按钮的值

40                 Toast.makeText(Ui_RadioButton.this, "选择单选按钮的值为:"+str, 1).show();

41             }

42         });

43         

44         //单击其他按钮时的响应事件

45         tijiao.setOnClickListener(new OnClickListener() {

46             

47             @Override

48             public void onClick(View v) {

49                 // TODO Auto-generated method stub

50 

51                 for(int i = 0;i<radiogroup.getChildCount();i++)  //循环按钮组子按钮的数量次

52                 {

53                     RadioButton r =  (RadioButton)radiogroup.getChildAt(i); //根据索引值获取单选按钮

54                     if(r.isChecked()) //判断按钮是否被选中 

55                     {

56                         

57                         str = r.getText().toString().trim();//获取被选中的单选按钮的值

58                         Toast.makeText(Ui_RadioButton.this, "点击提交按钮时获取的单选按钮的值为:"+str, 1).show();

59                         break;

60                     }

61                 }

62             }

63         });

64     }

65 

66 }

注释很明白了,很简单的

效果图:

你可能感兴趣的:(RadioButton)