【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

相关文章
|
8天前
|
Android开发 开发者
安卓开发中的自定义视图:从入门到精通
【9月更文挑战第19天】在安卓开发的广阔天地中,自定义视图是一块充满魔力的土地。它不仅仅是代码的堆砌,更是艺术与科技的完美结合。通过掌握自定义视图,开发者能够打破常规,创造出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战应用,一步步展示如何用代码绘出心中的蓝图。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创意和效率的大门。让我们一起探索自定义视图的秘密,将你的应用打造成一件艺术品吧!
31 10
|
2天前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
|
5天前
|
存储 开发框架 数据可视化
深入解析Android应用开发中的四大核心组件
本文将探讨Android开发中的四大核心组件——Activity、Service、BroadcastReceiver和ContentProvider。我们将深入了解每个组件的定义、作用、使用方法及它们之间的交互方式,以帮助开发者更好地理解和应用这些组件,提升Android应用开发的能力和效率。
|
7天前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
在Android开发中,每位开发者都渴望应用响应迅速、体验流畅。然而,代码执行缓慢却是常见问题。本文将跟随一位大神的脚步,剖析三大典型案例:主线程阻塞导致卡顿、内存泄漏引发性能下降及不合理布局引起的渲染问题,并提供优化方案。通过学习这些技巧,你将能够显著提升应用性能,从新手蜕变为高手。
15 2
|
8天前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
38 1
|
1天前
|
搜索推荐 前端开发 Android开发
安卓开发中的自定义视图:打造个性化用户界面
【9月更文挑战第26天】在移动应用开发的广阔天地中,定制性是提升用户体验的不二法宝。本文将带你深入了解安卓开发中自定义视图的魅力所在,通过简洁明了的语言和直观的代码示例,展示如何从零开始创建属于自己的控件,让你的应用界面与众不同。
|
13天前
|
Android开发 开发者 Kotlin
探索安卓开发中的新特性
【9月更文挑战第14天】本文将引导你深入理解安卓开发领域的一些最新特性,并为你提供实用的代码示例。无论你是初学者还是经验丰富的开发者,这篇文章都会给你带来新的启示和灵感。让我们一起探索吧!
|
10天前
|
Java Linux Android开发
深入理解Android开发:从基础到高级
【9月更文挑战第17天】本文将深入探讨Android开发的各个方面,包括应用开发、操作系统等。我们将通过代码示例来展示如何创建一个简单的Android应用,并解释其背后的原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
17天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
13天前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
25 3