tranke

导航

用onclicklistener实现多选按钮的全选功能

主要用到了三个方法:

1:.getId,找到控件的Id,类型为int型;
2:.isChecked,代表控件的状态为  已被选中  类型为布尔型;
3:setChecked,设置控件的状态,也是布尔型,可以传入一个参数,true为该控件当前状态已被选中,false代表未被选中
 
其实应该还有更简单的方法,有更简单的监听器,但是目前只学了onclicklistener监听器,以后学到新的再补充吧
 
好了,上代码:
 
 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
     
      setContentView(R.layout.activity_fist);
      
      And and=new And();
      
      both=(CheckBox)findViewById(R.id.both);
      eat=(CheckBox)findViewById(R.id.eat);
      sleep=(CheckBox)findViewById(R.id.sleep);
      dota=(CheckBox)findViewById(R.id.dota);
      
      both.setOnClickListener(and);
      eat.setOnClickListener(and);
      sleep.setOnClickListener(and);
      dota.setOnClickListener(and);
}
 
class And implements OnClickListener{
 
public void onClick(View v) {
CheckBox box=(CheckBox)v;
switch(box.getId()){
case R.id.both:
if(both.isChecked()){
both.setChecked(true);
eat.setChecked(true);
sleep.setChecked(true);
dota.setChecked(true);
}
else{
both.setChecked(false);
eat.setChecked(false);
sleep.setChecked(false);
dota.setChecked(false);
}
case R.id.eat:
 
both.setChecked(false);
 
if(eat.isChecked()){
eat.setChecked(true);
}
else eat.setChecked(false);
 
case R.id.sleep:
 
both.setChecked(false);
 
if(sleep.isChecked()){
sleep.setChecked(true);
}
else sleep.setChecked(false);
 
case R.id.dota:
 
both.setChecked(false);
 
if(dota.isChecked()){
dota.setChecked(true);
}
else dota.setChecked(false);
}
 
if(eat.isChecked()&&sleep.isChecked()&&dota.isChecked())
{
both.setChecked(true);
}
else both.setChecked(false);
 
 
 
}
}
 
 
 
}

posted on 2015-03-26 21:27  tranke  阅读(494)  评论(0编辑  收藏  举报