安卓开发_单选按钮控件(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的值分别“男”,“女”

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

效果图:

下面再看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 }

注释很明白了,很简单的

效果图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

教你步步为营掌握自定义ViewGroup

本篇是《教你步步为营掌握自定义View》一文的姊妹篇。自定义ViewGroup的文章很多,但都有一个缺点,没有回应用户关切,比如我在读那些文章时,就很想知道,自...

22860
来自专栏Android干货

Android项目实战(三十二):圆角对话框Dialog

40060
来自专栏Android Note

Android-水平和垂直方向都可滑动的RecycleView

20320
来自专栏Android开发与分享

【Android】造轮子:轮播图

44250
来自专栏三好码农的三亩自留地

Android-教你写小米系统应用--"我的小米"

前面的文章中,我们已经了解了如何去自定义一个ViewGroup,可以在onLayout中自由的对子View进行位置设定,我们今天这里刚好需要对上面需求提到的三部...

18020
来自专栏何俊林

DragVideo,一种在播放视频时,可以任意拖拽的方案

前言:项目已开源到我的github,点击【阅读原文】可以对应github地址。 DragVideo A Method to Drag the Video Wh...

37170
来自专栏刘望舒

Android View体系(九)自定义View

相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属...

221100
来自专栏Android干货

Android项目实战(四十七):轮播图效果Viewpager

34190
来自专栏Android开发经验

ScrollView里面基于某个View弹出PopupWindow,PopupWindow不会跟着View滚动?

19720
来自专栏向治洪

android自定义view实现progressbar的效果

一键清理是很多Launcher都会带有的功能,其效果也比较美观。实现方式也许有很多中,其中常见的是使用图片drawable来完成的,具体可以参考这篇文章:模仿实...

29250

扫码关注云+社区

领取腾讯云代金券