读书人

【Android每天一讲】2012.11.26 消费券

发布时间: 2012-11-26 11:48:50 作者: rapoo

【Android每日一讲】2012.11.26 消费券采购列表 - 多选项CheckBox的应用

1. 范例说明

这个范例要示范的是CheckBox.setOnCheckedChangeListener,在程序设计3个CheckBox核取项,分别表示3种物品列表,当User勾选其中一个物品,就在TextView里显示已选择的物品列表。程序关键在于同时监听3个CheckBox.OnCheckedChangeListener的状态,并在CheckBox.onChecked()方法中,重组所有被勾选的物品文字。

2. 运行结果

【Android每天一讲】2012.11.26 消费券采购列表 - 多选项CheckBox的应用

3. 编写代码

/** Called when the activity is first created. */@Overridepublic 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方法 */@Overridepublic 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

读书人网 >Android

热点推荐