为了账号安全,请及时绑定邮箱和手机立即绑定

安卓checkedbox 的疑问

安卓checkedbox 的疑问

慕粉4241372 2017-06-25 10:03:26
protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.secondactivity);     read = (CheckBox) findViewById(R.id.read);     sport = (CheckBox) findViewById(R.id.sport);     think = (CheckBox) findViewById(R.id.think);     MyCheckBox myCheckBox = new MyCheckBox();     read.setOnCheckedChangeListener(myCheckBox);     sport.setOnCheckedChangeListener(myCheckBox);     think.setOnCheckedChangeListener(myCheckBox); } class MyCheckBox implements CompoundButton.OnCheckedChangeListener{     @Override     public void onCheckedChanged(CompoundButton compoundButton, boolean b) {         CheckBox checkBox = (CheckBox) compoundButton;         switch (checkBox.getId()){             case R.id.read:                 Toast.makeText(MainActivity.this,"你选择了读书选项"+b,Toast.LENGTH_SHORT).show();             case R.id.sport:                 Toast.makeText(MainActivity.this,"你选择了运动选项"+b,Toast.LENGTH_SHORT).show();             case R.id.think:                 Toast.makeText(MainActivity.this, "你选择了发呆选项"+b, Toast.LENGTH_SHORT).show();         }     } }3个checkbox,添加了checkedchang事件。我发现,case里面,没有添加break的情况下第一个read被点击了,会依次弹出 “你选择了读书选项true“+”你选择了运动选项true”+“你选择了发呆选true”而点第二个sport,则会弹出”你选择了运动选项true”+“你选择了发呆选true”点最后一个think则只弹出一个“你选择了发呆选true”相当于,点击前面的按钮,则后面全都会弹出来出来,这是为什么?
查看完整描述

1 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

这不是JAVA基础的知识吗?

switch多分支语句的贯穿现象。

具体表现为:一旦switch语句的case匹配成功,则进入执行,直到遇到break跳出,或者是执行完整个switch语句,不管后方的case是否匹配成功。

所以当有default分支的时候,我们一般把default分支放到最后处理不匹配所有case的情况。

查看完整回答
反对 回复 2017-06-25
  • 1 回答
  • 0 关注
  • 1367 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信