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
分享到:
相关推荐
在前端开发领域,Bootstrap是一个非常流行且功能丰富的框架,它为构建响应式、移动设备优先的Web应用提供了强大的工具。而"awesome-bootstrap-checkbox"则是一个专门针对Bootstrap的增强型插件,旨在提升其内置的复...
在Android应用开发中,CheckBox控件是一个至关重要的组件,它为用户提供了一种简单的方式来选择或取消选择一个选项。CheckBox通常用于在多个可选项中让用户进行二元选择,例如"接受条款"或"发送推送通知"等场景。在...
Markdown-it-Checkbox是一款针对Markdown解析器Markdown-it的前端开源插件,主要功能是扩展Markdown语法,使其支持复选框的创建。在Markdown语法中,复选框是一种实用的特性,常用于任务列表或项目管理,使得用户能...
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)....
本教程“019_UI_常用组件-BasicViews-button-checkbox-radio”深入探讨了这些组件的使用和功能,旨在帮助开发者创建更加用户友好的应用界面。 按钮(Button)是Android中最常见的交互元素,用户可以通过点击按钮来...
一个简单的拥有丰富自定义内容的CheckBox多选框集成Gradlecompile 'com.bigmercu.cBox:cbox:1.08'Mavenallprojects { repositories { jcenter() maven { url '...
在Android应用开发中,UI设计和交互体验是至关重要的元素之一。Material Design是Google推出的一种设计语言,旨在提供一致、直观且富有表现力的用户体验。本文将深入探讨如何实现一个具有三种状态的纯Material风格的...
方便大家复制粘贴使用,提高大家的效率。 全端都支持 引入组件即可 <TC-checkbox></TC-checkbox> ...uni_modules/TC-checkbox/components/TC-checkbox/TC-checkbox 以上路径上进行修改即可
【标题】"android-support-v7.jar" 是一个关键的Android库文件,它是Android开发者经常使用的兼容性库,特别是在处理老版本Android系统时。这个库主要包含的是`v7`版本的AppCompat支持库。 【描述】"android-...
CheckBox是Android提供的一个UI组件,用于让用户选择一个或多个选项。当需要在界面上展示大量的CheckBox,并且需要以网格形式排列时,就需要实现多行多列的布局。下面将详细讲解如何实现这一功能。 1. **布局设计**...
《前端项目:打造美观的复选框与单选按钮——pretty-checkbox深度解析...通过深入理解并运用"pretty-checkbox-master"中的资源,开发者可以创造出更美观、更具吸引力的网页界面,让用户的每一次点击都成为愉快的体验。
1 What Is Android? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Brief History of Embedded Device Programming . . . . . . . . . . . . . . . . . . . . ...
在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。本示例主要讲解如何在ListView中实现CheckBox的多选效果,并结合动态加载数据的功能,以提供更好的用户体验。以下将详细介绍相关知识点: 1. **...
在Android开发中,CheckBox是一个非常常见的UI组件,它允许用户进行多选操作,通常用于创建复选框列表。本教程将深入探讨Android CheckBox的基本用法、事件监听以及如何结合源码实现一个完整的Demo。 首先,...
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 ...
同时,`ListView`还可以支持CheckBox复选框,使得用户可以选择一个或多个项目,这对于文件管理、任务列表等场景非常有用。 **TreeView控件** `TreeView`控件用于呈现数据的层级结构,通常用于文件系统、组织结构...
在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。本资源提供了一个高级应用的源码示例,实现了ListView与CheckBox结合的UI设计,包括全选、全不选以及删除等功能。这个功能在许多应用中都有广泛...
在Android开发中,CheckBox是一个非常常见的UI元素,用于表示用户可以选择或取消选择的两种状态。本教程将深入探讨CheckBox的基本用法以及如何设置监听器来响应用户的操作。 **CheckBox基本概念** CheckBox是...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。当需要在列表项中加入可选择的功能时,我们通常会结合使用CheckBox。本示例"Android中ListView结合CheckBox获取选中项.rar"旨在教授如何在...
在Android应用开发中,CheckBox是用户界面(UI)设计中不可或缺的一部分,它允许用户进行多选操作,通常用于实现勾选列表或者设置开关状态。本资料包“Android应用源码之(CheckBox与监听)”提供了关于如何在Android...