`

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

阅读更多
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
1
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics