1. 范例说明
这个范例要示范的是CheckBox.setOnCheckedChangeListener,在程序设计3个CheckBox核取项,分别表示3种物品列表,当User勾选其中一个物品,就在TextView里显示已选择的物品列表。
程序关键在于同时监听3个CheckBox.OnCheckedChangeListener的状态,并在CheckBox.onChecked()方法中,重组所有被勾选的物品文字。
2. 运行结果
3. 编写代码
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 透过findViewById取得TextView对象并调整文字内容 */
mTextView1 = (TextView) findViewById(R.id.myTextView1);
mTextView1.setText("你所选择的项目有: ");
/* 透过findViewById取得三个CheckBox对象 */
mCheckBox1 = (CheckBox) findViewById(R.id.myCheckBox1);
mCheckBox2 = (CheckBox) findViewById(R.id.myCheckBox2);
mCheckBox3 = (CheckBox) findViewById(R.id.myCheckBox3);
/* 设定OnCheckedChangeListener给三个CheckBox对象 */
mCheckBox1.setOnCheckedChangeListener(mCheckBoxChanged);
mCheckBox2.setOnCheckedChangeListener(mCheckBoxChanged);
mCheckBox3.setOnCheckedChangeListener(mCheckBoxChanged);
}
/* 声明并建构onCheckedChangeListener对象 */
private CheckBox.OnCheckedChangeListener mCheckBoxChanged = new CheckBox.OnCheckedChangeListener() {
/* implement onCheckedChanged方法 */
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
/* 透过getString()取得CheckBox的文字字符串 */
String str0 = "所选的项目为: ";
String str1 = getString(R.string.str_checkbox1);
String str2 = getString(R.string.str_checkbox2);
String str3 = getString(R.string.str_checkbox3);
String plus = ";";
String result = "但是超过预算啰!!";
String result2 = "还可以再多买几本喔!!";
/* 任一CheckBox被勾选后,该CheckBox的文字会改变TextView的文字内容 * 三个对象总共八种情境 */
if (mCheckBox1.isChecked() == true & mCheckBox2.isChecked() == true
& mCheckBox3.isChecked() == true) {
mTextView1.setText(str0 + str1 + plus + str2 + plus + str3
+ result);
} else if (mCheckBox1.isChecked() == false
& mCheckBox2.isChecked() == true
& mCheckBox3.isChecked() == true) {
mTextView1.setText(str0 + str2 + plus + str3 + result);
} else if (mCheckBox1.isChecked() == true
& mCheckBox2.isChecked() == false
& mCheckBox3.isChecked() == true) {
mTextView1.setText(str0 + str1 + plus + str3 + result);
} else if (mCheckBox1.isChecked() == true
& mCheckBox2.isChecked() == true
& mCheckBox3.isChecked() == false) {
mTextView1.setText(str0 + str1 + plus + str2 + result);
} else if (mCheckBox1.isChecked() == false
& mCheckBox2.isChecked() == false
& mCheckBox3.isChecked() == true) {
mTextView1.setText(str0 + str3 + plus + result2);
} else if (mCheckBox1.isChecked() == false
& mCheckBox2.isChecked() == true
& mCheckBox3.isChecked() == false) {
mTextView1.setText(str0 + str2);
} else if (mCheckBox1.isChecked() == true
& mCheckBox2.isChecked() == false
& mCheckBox3.isChecked() == false) {
mTextView1.setText(str0 + str1);
} else if (mCheckBox1.isChecked() == false
& mCheckBox2.isChecked() == false
& mCheckBox3.isChecked() == false) {
mTextView1.setText(str0);
}
}
};
4. 扩展学习与作业
AndroidUI 设计CheckBox复选框用法
http://www.eyeandroid.com/thread-10159-1-1.html
作业:请简化Demo中的onCheckedChanged方法
5.视频讲解
http://www.eyeandroid.com/thread-10704-1-1.html
- 大小: 44.8 KB
分享到:
相关推荐
前端项目-awesome-bootstrap-checkbox,字体可怕的引导复选框和收音机。纯CSS方式使输入看起来更漂亮。
11)..Added: Support for detection of Windows 10 updates 12)..Added: OS edition detection 13)..Added: "User" and "Session" columns to processes list, processes list is also sorted by session first 14)....
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
一个简单的拥有丰富自定义内容的CheckBox多选框集成Gradlecompile 'com.bigmercu.cBox:cbox:1.08'Mavenallprojects { repositories { jcenter() maven { url '...
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
Android CheckBox and RadioButton with additional 3rd 'indeterminate' state. Requirements Based on AppCompat library Requires AppCompat theme API 7 (but tested only on API 10 ) Getting Started You ...
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
019_UI_常用组件-BasicViews-button-checkbox-radio视频教材,讲解的比较详细,有兴趣的可以学习下哦
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
Android应用开发
1 What Is Android? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Brief History of Embedded Device Programming . . . . . . . . . . . . . . . . . . . . ...
前端项目-pretty-checkbox,A pure CSS library to beautify checkbox and radio buttons
这是2010年1月12日从Oracle官方网站下载的最新版本,官网也就是从这一天开始才正式提供正确的下载路径,所以在此之前没有出现过这个2.1版。 注意: 除非内含jdk1.6.11,否则需要在系统中安装有jdk1.6.11或以上版本...
Android高级应用源码-ListView+CheckBox UI 完美版。实现 全选 、 全不选 、 删除等功能.zip
react-native-item-checkbox, 使用自定义颜色创建你自己的项目复选框 react-native-item-checkbox使用自定义颜色创建你自己的项目复选框。 开始npm i react-native-item-checkbox重要英镑仅适用于react-native-...
vue配合element-ui框架中el-checkbox 接收json"data:[{key:1,name:'小李'}]"对象时全选与非全选时获取相关设定的值源码文件
Android CheckBox与监听Demo源码.rar
3-5(CheckBox与监听).7z