【Android每日一讲】2012.11.26 消费券采购列表

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


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值