Android控件系列之RadioButton与RadioGroup使用方法,android中radiobutton

4
回复
643
查看
[复制链接]

497

主题

1220

帖子

1039

安币

手工艺人

发表于 2018-2-28 11:22:21 | 显示全部楼层 |阅读模式

            学习目的: 1、掌握在android中如何建立radiogroup和radiobutton 2、掌握radiogroup的常用属性 3、理解radiobutton和checkbox的区别 4、掌握radiogroup选中状态变换的事件(监听器) <img src="http://files.jb51.net/file_images/article/201211/201211090954275.jpg">radiobutton和checkbox的区别: 1、单个radiobutton在选中后,通过点击无法变为未选中 单个checkbox在选中后,通过点击可以变为未选中 2、一组radiobutton,只能同时选中一个 一组checkbox,能同时选中多个 3、radiobutton在大部分ui框架中默认都以圆形表示 checkbox在大部分ui框架中默认都以矩形表示 radiobutton和radiogroup的关系: 1、radiobutton表示单个圆形单选框,而radiogroup是可以容纳多个radiobutton的容器 2、每个radiogroup中的radiobutton同时只能有一个被选中 3、不同的radiogroup中的radiobutton互不相干,即如果组a中有一个选中了,组b中依然可以有一个被选中 4、大部分场合下,一个radiogroup中至少有2个radiobutton 5、大部分场合下,一个radiogroup中的radiobutton默认会有一个被选中,并建议您将它放在radiogroup中的起始位置 xml布局: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请选择您的性别:" android:textsize="9pt" /> <radiogroup android:id="@+id/radiogroup" android:contentdescription="性别" android:layout_width="wrap_content" android:layout_height="wrap_content"> <radiobutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/radiomale" android:text="男" android:checked="true"></radiobutton> <radiobutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/radiofemale" android:text="女"></radiobutton> </radiogroup> <textview android:id="@+id/tvsex" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="您的性别是:男" android:textsize="9pt" /> </linearlayout> 选中项变更的事件监听: 当radiogroup中的选中项变更后,您可能需要做一些相应,比如上述例子中,性别选择“女”后下面的本文也相应改变,又或者选择不同的性别后,出现符合该性别的头像列表进行更新,女生不会喜欢使用大胡子作为自己的头像。 如果您对监听器不熟悉,可以阅读android控件系列之button以及android监听器。 后台代码如下: 复制代码 代码如下: textview tv = null;//根据不同选项所要变更的文本控件 @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); //根据id找到该文本控件 tv = (textview)this.findviewbyid(r.id.tvsex); //根据id找到radiogroup实例 radiogroup group = (radiogroup)this.findviewbyid(r.id.radiogroup); //绑定一个匿名监听器 group.setoncheckedchangelistener(new oncheckedchangelistener() { @override public void oncheckedchanged(radiogroup arg0, int arg1) { // todo auto-generated method stub //获取变更后的选中项的id int radiobuttonid = arg0.getcheckedradiobuttonid(); //根据id获取radiobutton的实例 radiobutton rb = (radiobutton)myactiviy.this.findviewbyid(radiobuttonid); //更新文本内容,以符合选中项 tv.settext("您的性别是:" + rb.gettext()); } }); }  

        效果如下:

        <img src="http://files.jb51.net/file_images/article/201211/201211090954276.jpg">

        总结:



        

8

主题

9326

帖子

3547

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2018-3-1 11:39:30 | 显示全部楼层
支持,感谢,祝巴士越来越好~

0

主题

9424

帖子

2412

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-2 11:10:56 | 显示全部楼层
感谢分享,楼主V5~

11

主题

9441

帖子

-12

安币

QQ游客

推广达人

发表于 2018-3-3 09:08:31 | 显示全部楼层
感觉楼主很用心,辛苦啦~

7

主题

9605

帖子

1969

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-4 10:09:27 | 显示全部楼层
楼主是好人,回个帖会有安币吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )