android惯用控件(二) RadioGroup RadioButton CheckBox Toast的使用

android常用控件(二) RadioGroup RadioButton CheckBox Toast的使用
Android常用控件(二)- RadioGroup、RadioButton、CheckBox、Toast

一、 RadioGroup、RadioButton的用法
RadioGroup是RadioButton的组。一个RadioGroup里面可以有多个RadioButton,但是只能选中其中的一个RadioButton。

示例1:一个应用程序中有两个单选按钮,用于选择男或女。

android惯用控件(二) RadioGroup RadioButton CheckBox Toast的使用

开发步骤:
1、 新建一个Android应用程序
2、 编写main.xml文件,添加一个RadioGroup标签(还可以设置此标签内的布局方向是水平布局还是垂直布局)
3、 在RadioGroup标签内添加两个RadioButton
4、 编写Activity,先声明3个全局变量,用于接收这三个控件对象
5、 在onCreate()方法内,根据控件i d获得这三个对象并赋给相应的变量
6、 编写监听器,监听器实现的是RadioGroup.OnCheckedChangeListener()提供的接口,需要重写里面的public void onCheckedChanged(RadioGroup group, int checkedId) 方法,这个方法的第一个参数是用来接收RadioGroup对象,第二个参数是用来接收被选中的RadioButton的ID。
在这个方法里面可以做一系列的判断和操作,比如判断RadioButton的id是否等于checkedId,如果等于就可以输出一句话或者使用Toast显示提示消息。
7、将监听器绑定到RadioGroup上
需要主要的是,
a)、这里绑定监听器的是RadioGroup对象而不是RadioButton对象
b)、这里的监听器实现的是RadioGroup.OnCheckedChangeListener()提供的接口。

二、 CheckBox的用法
CheckBox复选框,相信大家都很了解了,这里就不多说了,直接上示例。
示例2:一个应用程序中有三个复选框,可以进行多选操作。

android惯用控件(二) RadioGroup RadioButton CheckBox Toast的使用

开发步骤:
1、 新建一个Android应用程序
2、 编写main.xml文件,添加三个CheckBox标签
3、 编写Activity,先声明3个全局变量,用于接收这三个控件对象
4、 为每一个CheckBox都编写一个监听器,该监听器实现的是CompoundButton.OnCheckedChangeListener()提供的接口,需要重写里面的public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法,这个方法的第一个参数是用来接收CompoundButton对象,第二个参数是用来接收是否被选中,
在这个方法里面可以做一系列的判断和操作,比如判断某个CheckBox有没有被选中
5、 将监听器绑定在对应的CheckBox上

三、 Toast的用法
Toast主要用于提示信息,用起来很方便,一行代码就OK了。
1、 创建Toast对象
makeText(Context context, CharSequence text, int duration);
通过调用这个方法,返回一个Toast对象。
第一个参数是上下文对象,通常是你的应用程序或者Activity对象,
第二个参数就是要显示的文本内容,可以格式化文本
第三个参数是持续多长时间来显示消息,有两个常量:LENGTH_SHORT 或者LENGTH_LONG
2、 调用show()方法显示。
Toast toast = Toast.makeText(RadioTest.this, "female", Toast.LENGTH_SHORT);
toast.show();
在前面的RadioButton示例中,当选中”女”的单选框时调用Toast。
android惯用控件(二) RadioGroup RadioButton CheckBox Toast的使用


有一点需要注意的是:
RadioGroup的监听器实现是RadioGroup.OnCheckedChangeListener()提供的接口,而CheckBox的监听器实现的是CompoundButton.OnCheckedChangeListener()提供的接口
为什么RadioGroup和CheckBox实现的不是同一个接口呢?
原因大概是因为:
在RadioGroup.OnCheckedChangeListener()里面的onCheckedChanged(RadioGroup group, int checkedId) 方法它里面需要的是一个RadioGroup参数,而RadioGroup并不是CompoundButton的子类,所以它只能再重新写一个这样的接口。
而CheckBox它本身就是CompoundButton的子类,所以它可以直接使用这个接口。

两个示例都已经上传到附件,有需要的可以下载。
1 楼 爪哇岛岛主 2011-02-10  
这是入门视频的第六集
2 楼 阿七无可取代 2011-06-10  
checkbox的是与非?
。。。。。。。。。
。。。。。。。。。