Android学习之单选按钮
单选按钮其实就是好几个按钮成为了一个大家族,我们每次只能够选择一个成员,创建单选按钮的方法就是把平常我们见到的普通按钮Button给他们装到一个盒子里面,让他们成为一个按钮组,所以就有了RadioGroup的产生。
<RadioGroup
android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"/><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/>
</RadioGroup>
以上代码就是我们创建了一个单选按钮组,在这个按钮组里面我们创建了两个按钮(当然我们也可以创建更多的),注意我们一定要把每一个Button给包含到RadioGroup中。
其中android:orientation="horizontal"
可以设置按钮组中按钮的排列方向
horizontal 按钮横向排列
vertical 按钮纵向排列
按钮组创建出来了,但是现在这些个代码还不能读取每个按钮的状态,接下来我们要做的就是获取每一个按钮的选中状态。我们有两种方式获得,第一种是当改变单选按钮组的值时获取,第二种是当单击其他按钮时获取。
1、改变单选按钮组的值时获取
首先我们要为刚才创建的按钮组设置一个id属性
<RadioGroup
android:id="@+id/radioGroup1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"/><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/>
</RadioGroup>
然后在主方法中利用id获取按钮组对象,然后给他们添加专门用于单选按钮组的监听器
RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){public void onCheckedChanged(RadioGroup group,int checkedId){RadioButton r=(RadioButton)findViewById(checkedId);Toast.makeText(MainActivity.this,"您选择的是"+r.getText(),Toast.LENGTH_LONG).show();}});
其中的r.getText()
就是得到这个按钮所对应的文本内容
2、单击其他按钮时获取
单击其他按钮时获取选中项的值时,首先需要在该按钮的单击事件监听器的onClick()方法中,通过for循环语句遍历当前单选按钮组,并根据被遍历到的单选按钮的isChecked()方法判断该按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值,例如,要在单击“提交”按钮时,获取ID属性为radioGroup1的单选按钮组的值,代码如下
<RadioGroup
android:id="@+id/radioGroup1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"/><RadioButton
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/>
</RadioGroup><Button
android:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交"/>
注意要给按钮组和组外的提交按钮设置id属性
主方法中的部分代码如下
public class MainActivity extends AppCompatActivity {private RadioGroup sex;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sex=(RadioGroup)findViewById(R.id.radioGroup1);Button button=(Button)findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener(){public void onClick(View v){for(int i=0;i<sex.getChildCount();i++){RadioButton r=(RadioButton)sex.getChildAt(i);//根据索引值获取单选按钮if(r.isChecked()){Toast.makeText(MainActivity.this,"您选择的是"+r.getText(),Toast.LENGTH_LONG).show();}}}});}
}
注意这里面我们先写了这句话private RadioGroup sex;
那是因为我们一会要在事件监听器的方法中使用sex,所以我们要把sex设置成全局的类型。
如果我们要想某些按钮在初始化的时候就已经默认被选中,那么我们可以这样写
<RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:checked="true"/>
其中的android:checked="true"
就代表按钮初始就已经被选中了
true 默认被选中
false 默认不被选中
当然默认被选中的按钮我们在程序运行的时候也可以把它进行取消,这在我们生活中都有这个体验。
Android学习之单选按钮相关推荐
- Android学习之网上商城(下)
前言 上一篇博客主要介绍了本次网上商城的实现过程中的一些用法,这篇博客主要就是说明每个功能模式的实现方法 Android学习之网上商城(上) Android学习之网上商城(下) 源码下载: 链接:ht ...
- Android学习:常用控件
Android学习:常用控件 学习要点:掌握文本框.编辑框.按钮.单选按钮.复选框等基本控件的用法 控件是Android应用程序中用户界面的重要组成元素,正是因为Android应用程序提供了很多具有不 ...
- Android学习路线
Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...
- Android学习第一书
大家好,我是一名Facebook的工程师,同时也是<第一行代码--Android>的忠实读者. 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的< ...
- Android学习笔记21:ImageView获取网络图片
Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天--JAVA基础回顾 这才学习Android的 ...
- Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
最新文章
- Java进阶之深入理解JVM类加载机制
- Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
- Linux文件和目录属性
- Android 2.2 带来全新拍照增强特性
- virtualenv: 未找到命令
- L1-078 吉老师的回归 (15 分)-PAT 团体程序设计天梯赛 GPLT
- MATLAB手写数字识别
- 开学季,别忙着给孩子训练专注力!先搞清楚孩子的专注力类型
- c语言解线性方程组矩阵形势,c语言解线性方程组.docx
- 关于Git这一篇就够了
- 神舟 linux背光驱动,【linux】暂时解决sis m672(神舟F4000 D9) linux驱动 宽屏分辨率的问题?...
- DZ60通过IIC读取LM75温度遇到问题解决方法
- android+设置运行内存大小,怎样增大安卓手机的虚拟运行内存RAM ,手机的ram太小....
- struck.unpack
- CHUA 返回的矢量的长度为 3,但初始条件矢量的长度为 4。CHUA 返回的矢量和初始条件矢量的元素数目必须相同。
- JavaScript比较运算大于小于等于
- HTML+CSS+JavaScript 实现图片3D展览
- 基于Javaweb实现的人脸识别考勤系统
- python 视频硬字幕提取 内嵌字幕提取工具
- python 因子分析_因子分析在python上的实现
热门文章
- (原创)如何解决matlab乱码问题
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法
- 【报告分享】2021年中国互联网保险消费者洞察报告.pdf(附下载链接)
- 【干货】2021技术展望:开拓新局,掌握变局时代的技术先机-埃森哲.pdf(附下载链接)
- 【报告分享】2019-2020年企业调薪参考手册.pdf(附下载链接)
- 【报告分享】2019中国少儿编程行业报告.pdf(附下载链接)
- linux跑程序占用缓存过多释放内存echo 3 > /proc/sys/vm/drop_caches
- apt-get update命令卡在waiting for headers
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
- 跨境独立站卖家如何把握关键词优化?