目录
一、导入新课
- 安卓应用中,常常需要用户从若干选项中进行选择,有时要求只能选择一个,那么就要使用单选按钮(RadioButton),有时要求用户可以选择多个,那么就要使用复选框(CheckBox)。
二、新课讲解
(一)单选按钮组
1、继承关系图
- RadioGroup是LinearLayout的子类
2、常用属性
属性 | 含义 |
---|---|
orientation | vertical 或 horizontal,决定单选按钮是垂直排列还是水平排列 |
layout_width | 宽度(单位:dp) |
layout_height | 高度(单位:dp) |
3、设置事件监听器
设置监听器 | 作用 |
---|---|
setOnCheckedChangeListener | 监听单选按钮选中状态的变化 |
setOnClickListener | 监听单选按钮组是否被单击了 |
4、注意事项
- 导入
android.widget.RadioGroup.OnCheckedChangeListener
接口
5、重要方法
方法 | 作用 |
---|---|
getCheckedRadioButtonId() | 用于获取选中的单选按钮的id |
(二)单选按钮
1、继承关系图
- RadioButton是CompoundButton的子类
2、常用方法
方法 | 作用 |
---|---|
isChecked() | true 或false,显示单选按钮的选中状态 |
setChecked() | 参数是true或false,用来设置单选按钮的选中状态 |
3、设置事件监听器
|设置监听器|作用
setOnCheckedChangeListener|监听单选按钮选中状态的变化
setOnClickListener|监听单选按钮是否被单击了
4、注意事项
- 导入
android.widget.CompoundButton.OnCheckedChangeListener
接口
(三)复选框
1、继承关系图
- CheckBox是CompoundButton的子类
2、常用方法
方法 | 作用 |
---|---|
isChecked() | true 或false,显示复选框的选中状态 |
setChecked() | 参数是true或false,用来设置复选框的选中状态 |
3、设置事件监听器
|设置监听器|作用
setOnCheckedChangeListener|监听单选按钮选中状态的变化
setOnClickListener|监听单选按钮是否被单击了
- 三个控件的继承关系图
(四)教学案例:设置基本信息
1、创建安卓应用
- 基于Empty Activity模板创建安卓应用 - SetBasicInformation
2、准备图像素材
- 将背景图片拷贝到drawable目录
3、字符串资源文件
- 字符串资源文件 - strings.xml
<resources>
<string name="app_name">设置基本信息</string>
<string name="set_information">设置基本信息</string>
<string name="name">姓名:</string>
<string name="input_name">请输入姓名</string>
<string name="gender">性别:</string>
<string name="male">男</string>
<string name="female">女</string>
<string name="hobby">爱好:</string>
<string name="music">音乐</string>
<string name="read">阅读</string>
<string name="food">美食</string>
<string name="ok">确定</string>
<string name="clear">清除</string>
<string name="exit">退出</string>
</resources>
4、主布局资源文件
- 主布局资源文件 - activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingTop="50dp"
android:paddingRight="20dp">