Android 第三天(下午)

多选按钮(CheckBox)

这个控件和 前几天的控件使用方法上是一样的。

主要是要区别在于怎么知道用户选的是哪一个按钮和,到底是勾选还是取消。

第一个问题我们在监听器里面可以解决

class OnBoxListener implements OnClickListener{
public void onClick(View v) {
if(v.getId()==R.id.eatId){    //我们可以使用 View 的对象调用getid()这个方法,获得现在所使用监听器的对象的ID ,然后和R文件里面的ID 所比较。就可以解决问题
System.out.println("eat");
}
else if(v.getId()==R.id.sleepId){
System.out.println("sleep");
}
else if(v.getId()==R.id.dotaId){
System.out.println("dota");
}}

第二个问题我们可以使用一个一个CheckBox的一个函数

public void onClick(View v) {
CheckBox box=(CheckBox)v;//这里我们先把view的对象V 向下转型
if(box.getId()==R.id.eatId){
System.out.println("eat");
}
else if(box.getId()==R.id.sleepId){
System.out.println("sleep");
}
else if(box.getId()==R.id.dotaId){
System.out.println("dota");
}
if(box.isChecked()){//这里我们调用 ischecked 这个函数,当选中的时候这个函数会返回ture。否flase
System.out.println("checked");
}
else{System.out.println("unchecked");}
}
上面这些都是使用OnClickListener的监听器。下面换OncheckedChangeListener监听器来实现同样的功能

OnBoxListener Listener1=new OnBoxListener();
eatBox.setOnCheckedChangeListener(Listener1);
sleepBox.setOnCheckedChangeListener(Listener1);
dotaBox.setOnCheckedChangeListener(Listener1);

class OnBoxListener implements OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {//这个监听器自带的函数,的两个参数和前面OnclickListener来说比较方便,他已经帮你传递了两个参数,第一个是CompoundButton,这个相当于是checkbox的子类。
if(buttonView.getId()==R.id.eatId){
System.out.println("eat");
}
else if(buttonView.getId()==R.id.sleepId){
System.out.println("sleep");
}
else if(buttonView.getId()==R.id.dotaId){
System.out.println("dota");
}
if(isChecked){//这里和前面有一点不一样应为 已经帮你传递参数了,不需要使用方法
System.out.println("checked");
}
else{System.out.println("unchecked");}}




现在再说一个函数就是让你的 多选框变成选中状态,或者取消选中状态。

如 eatBox.setChecked(ture):就是选中状态如果是flase就是 取消选中状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值