Android 简单复选框逻辑

Android 简单复选框逻辑,android,checkbox,oncheckedchanged,Android,Checkbox,Oncheckedchanged,我们班上给我的问题是,你可以选择勾选4个标有(A、B、C、D)的复选框。每个复选框的值为10。如果选中一个,EditText中显示的数字将是10,如果选中两个,将是20,依此类推 有人能告诉我onClick课程是怎么做的吗?谢谢 创建四个具有不同ID的复选框,例如CB_One、CB_Two、CB_Three、CB_Three和id CB_One、CB_Two、CB_Three、CB_Three。为all设置onCheckedChangedListener,然后将值作为10,20,30,40传递给

我们班上给我的问题是,你可以选择勾选4个标有(A、B、C、D)的复选框。每个复选框的值为10。如果选中一个,EditText中显示的数字将是10,如果选中两个,将是20,依此类推


有人能告诉我onClick课程是怎么做的吗?谢谢

创建四个具有不同ID的复选框,例如CB_One、CB_Two、CB_Three、CB_Three和id CB_One、CB_Two、CB_Three、CB_Three。为all设置onCheckedChangedListener,然后将值作为10,20,30,40传递给editText

CB_One.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
               editText.setText("10");
        } else{
              editText.setText("");
        }
   }
 }

);

CB_Two.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
               editText.setText("20");
        } else{
              editText.setText("");
        }
   }
 }

);

CB_Three.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
               editText.setText("30");
        } else{
              editText.setText("");
        }
   }
 }

);

CB_Four.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
               editText.setText("40");
        } else{
              editText.setText("");
        }
   }
 }

);

像这样使用OnCheckChangeListener复选框

checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
               // increment your counter by 10
        } else{
              // Decrement your counter by 10
        }
   }
 }

);

我认为如果你想在编辑文本中一次只显示一个值,你应该使用单选按钮而不是复选框。记下一个数字。在侦听器中选中复选框时增加计数器,反之亦然。根据当前计数*10更新编辑文本。保留一个计数器并使用一个公共侦听器以减少代码,从而使其更易于管理。