Android控件系列之RadioButton与RadioGroup使用方法
程序员文章站
2023-12-15 20:41:16
学习目的: 1、掌握在android中如何建立radiogroup和radiobutton 2、掌握radiogroup的常用属性 3、理解radiobutton和chec...
学习目的:
1、掌握在android中如何建立radiogroup和radiobutton
2、掌握radiogroup的常用属性
3、理解radiobutton和checkbox的区别
4、掌握radiogroup选中状态变换的事件(监听器)
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());
}
});
}
1、掌握在android中如何建立radiogroup和radiobutton
2、掌握radiogroup的常用属性
3、理解radiobutton和checkbox的区别
4、掌握radiogroup选中状态变换的事件(监听器)
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());
}
});
}
效果如下:
总结:
本文介绍了android中如何使用radiogroup和radiobutton,对比了radiobutton和checkbox的区别,并实现了自定义的radiogroup中被选中radiobutton的变更监听事件。