android学习总结(16.08.29)单选按钮(RadioButton),多选按钮(CheckBox)和开关按钮(Switch)

来源:互联网 发布:python 模拟按键 编辑:程序博客网 时间:2024/05/16 15:32

单选按钮组

介绍单选按钮RadioButton之前,先介绍一下单线按钮的容器RadioGroup

RadioGroup的继承于LinearLayout,它是专门用来容纳单选按钮RadioButton的容器

一个RadioGroup容器为一个单选组

RadioGroup的Orientation属性,决定选项的排列方式为横向或纵向,默认为vertical
在RadioGroup中添加RadioButton控件即可添加一个单选选项

对于RadioButton,一个RadioGroup中只有一个RadioButton可以被选中(名副其实的单选)
RadioButton的checked属性可以设定RadioButton是否被选中,默认值为false


单选项RadioButton的监听器

若要RadioButton对点击(选择)有响应必须使用它的setOnCheckedChangeListener方法绑定监听器
针对单选监听器要实现  接口
RadioGroup.OnCheckedChangeListener()
并重写该接口的onCheckedChanged方法:
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId)
其中group是当前点击或进行选择的RadioGroup选项组,
checkedId是当前被选中的子项目RadioGroup的ID(对应XML)


通常在此方法中处理点击后的相应行为来对不同的子项目RadioButton进行响应

switch(checkId){    case xxx:    ....    case xxx:    ...    ...}



多选按钮

多选项(CheckBox)和单选项(RadioButton)不一样,不用把多个选项放到一个组中
每个CheckBox都单独是一个选项,而且可以多选
其属性checked 决定其是否被选中,默认为false


多选项CheckBox的监听器

使用CheckBox的setOnCheckedChangeListener方法来绑定监听器
监听器要实现接口
CompoundButton.OnCheckedChangeListener   (注意与RadioButton的监听器区分,属于同类中)
并实现接口的void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 方法
方法中buttonView是被点击(checked属性改变)的CheckBox实例的引用,isChecked为被引用的CheckBox实例checked属性的值
这个方法可以对checked属性发生改变的CheckBox作出响应
通常会使用判断语句根据isChecked的值作出不同响应

Switch 开关

注意区分大小写(switch)
和CheckBox类似,个人认为只是外观有区别
也是使用CompoundButton.OnCheckedChangeListener 的实现类的实例作为监听器


三个控件的父类

RadioGroup,CheckBox,Switch都是抽象类CompoundButton的子类
而CompoundButton是Button的子类并实现了Checkable接口
因此Button的所有属性这三个控件都可使用 
0 0
原创粉丝点击