最近复习安卓基础的时候发现没有写关于单选按钮、复选按钮的博客,可能因为以前学习的时候感觉太简单了就没有写,现在补上吧
当我们在各种客户端注册账号的时候,会有几项单选项,比如选择您的性别。下面就是学习怎么实现这种效果
一、安卓中,单选按钮用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的值分别“男”,“女”
表示我们只能选择其中的任意一项选项
效果图:
下面再看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 }
注释很明白了,很简单的
效果图:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有