【Android开发】基本组件-单选按钮

简介:
单选框:
默认情况下,单选框按钮显示为一个圆形图标,并且在该图标旁边放置一些说明性文字。
在Android中,单选按钮使用RadioButton表示,RadioButton又是Button的子类,所以单选按钮可以直接使用Button支持的各种属性。

Android中,可以使用两种方法向屏幕中添加单选按钮,一种是通过在XML布局文件中使用<RadioButton>标记添加;另一种是在Java文件中,通过new关键字创建。

推荐使用XML配置,基本语法如下:
<RadioButton 
    android:text="显示文本"
    android:id="@+id/ID号"
    android:checked="true|false"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</RadioButton>

RadioButton组件的android:checked属性用于指定选中状态,属性值为true时,表示选中,false表示未选中。默认为false。

通常情况下,RadioButton组件要与RadioGroup组件一起使用,组成一个单选按钮组。在XML布局文件中,添加RadioGroup组件的基本格式如下:
<RadioGroup
    android:id="@+id/ID号"
    android:orientation="horizontal"
    android:layout_width="warp_content"
    android:layout_height="warp_content">
<!--添加多个RadioButton组件-->
</RadioGroup>

一个简单的选择性别的组件例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:orientation="horizontal"
	android:background="#FFFFFF">
	<TextView android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="性别:"
	    android:height="50px"/>
	<RadioGroup android:id="@+id/radioGroup1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:orientation="horizontal">
	    <RadioButton android:id="@+id/radio0"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:text="男"
	        android:checked="true"/>
	     <RadioButton android:id="@+id/radio1"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:text="女"/>
	</RadioGroup>
	<Button android:text="提交"
	    android:id="@+id/button1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"/>
</LinearLayout>

效果如图



获取值的方式:
1.在改变单选按钮组的值时获取。
获取单选按钮组,然后为其添加OnCheckedChangeListener,并在其onCheckedChange()方法
中根据参数checkedId获取被选中的单选按钮,并通过getText()方法获取该单选按钮对应的值
package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends Activity {
  
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		    RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1);
		
			sex.setOnCheckedChangeListener(new OnCheckedChangeListener() {
				
				@Override
				public void onCheckedChanged(RadioGroup group, int checkedId) {
					RadioButton r=(RadioButton)findViewById(checkedId);
					r.getText();//获取被选中的单选按钮的值
				}
			});
	}
}

2.单击“提交”按钮(或其他按钮)时获取值
首先要在该按钮的单击事件监听器的onClick()方法中,通过for循环语句遍历当前单选按钮组,并根据被遍历的单选按钮的isChecked方法判断按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值。
package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class MainActivity extends Activity {
  
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		 final RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1);
		 Button button=(Button)findViewById(R.id.button1);
		 button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				for (int i = 0; i < sex.getChildCount(); i++) {
					RadioButton r=(RadioButton)sex.getChildAt(i);
					if(r.isChecked()){
						r.getText();
						break;
					}
				}
			}
		});
	}
}

转载请注明出处:http://blog.csdn.net/acmman/article/details/44776547

相关文章
|
5天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
1天前
|
调度 Android开发
Android9底部导航栏出现空白按钮问题分析
Android9底部导航栏出现空白按钮问题分析
5 0
|
1天前
|
Android开发 Kotlin
Kotlin开发Android之基础问题记录
Kotlin开发Android之基础问题记录
9 1
|
1天前
|
Java Android开发
Android开发@IntDef完美替代Enum
Android开发@IntDef完美替代Enum
7 0
|
2天前
|
Android开发
Android 盒子开发过程中遇到的问题及解决方法
Android 盒子开发过程中遇到的问题及解决方法
7 2
|
2天前
|
机器学习/深度学习 算法 Android开发
安卓应用开发:打造高效通知管理系统
【5月更文挑战第6天】 在现代移动应用的海洋中,用户经常面临信息过载的挑战。一个精心设计的通知管理系统对于提升用户体验至关重要。本文将探讨在安卓平台上如何实现一个高效的通知管理系统,包括最佳实践、系统架构设计以及性能优化技巧。通过分析安卓通知渠道和优先级设置,我们的目标是帮助开发者构建出既能吸引用户注意,又不会引发干扰的智能通知系统。
14 2
|
3天前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
8天前
|
存储 Java Android开发
安卓应用开发中的内存优化策略
【4月更文挑战第30天】在移动开发领域,尤其是安卓平台上,内存管理是影响应用性能和用户体验的关键因素。由于安卓设备的硬件资源有限,不合理的内存使用会导致应用响应缓慢、消耗过多电量甚至崩溃。本文将探讨针对安卓平台的内存优化技巧,旨在帮助开发者提高应用的性能和稳定性,从而提升用户满意度。我们将详细讨论内存泄漏的预防、合理的内存分配策略以及高效的内存回收方法。
|
15天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
17天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
FFmpeg开发笔记(九)Linux交叉编译Android的x265库