如何在CheckBoxes上设置onChecked Condition

时间:2017-01-26 09:40:36

标签: android checkbox conditional-statements

我有两个CheckBoxes我们将它视为ChckBx1和ChckBx2。

现在我需要在checkBoxes上调用或不调用几个方法调用。

要获得更多许可,如果选中chckBx1,则调用Method1,如果选中ChckBx2,则调用Method2,如果选中了两个CheckBox,则调用Method3。

有三种不同的条件。

请提供一些代码或示例。

感谢任何帮助。

6 个答案:

答案 0 :(得分:1)

首先检查两者是否都被检查,如果没有,则检查每个状态:

if(chckBx2.isChecked() && chckBx1.isChecked()){
 //call method 3
  return;
}
if(chckBx2.isChecked()){
  //call method 2
  return;
}
if(chckBx1.isChecked()){
  //call method 1
  return;
}

答案 1 :(得分:1)

您onCheckedChangeListener订阅您的复选框的状态更改。紧凑而清晰的例子可以是

final CheckBox checkBox1, checkBox2;

        CompoundButton.OnCheckedChangeListener listener=new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(checkBox1.isChecked()&&checkBox2.isChecked())
                {
                    // do what you want to do if both are checked
                }
                else if(checkBox1.isChecked())
                {
                    // do what you want to do if only checkbox1 is checked
                }
                else if(checkBox2.isChecked())
                {
                    // do what you want to do if only checkbox2 is checked
                }
            }
        };

使用各自的ID初始化checkbox1& checkbox2 希望这会对你的案子有所帮助

答案 2 :(得分:1)

我们需要在checkBox上使用 setOnCheckedChangeListener

ChckBx1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

       @Override
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
         if (isChecked and ChckBx2.isChecked()) {
             method3();
          }

         if (isChecked) {
             method1();
         }
       }
   }
); 

    ChckBx2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

           @Override
           public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
             if (isChecked and ChckBx1.isChecked()) {
                 method3();
              }

             if (isChecked) {
                 method2();
             }
           }
       }
    ); 

答案 3 :(得分:0)

简单,您可以查看

if(checkBx1.isChecked() && checkBx2.isChecked()){
//call method three
 return;
} 
else if(checkBx1.isChecked()){
 //call method one
 return;
}
else if(checkBx2.isChecked()){
//call method two
 return;
}  

答案 4 :(得分:0)

这很简单,只需查看下面您将理解的代码即可。

package com.example.checkbox;  

import android.os.Bundle;  
import android.app.Activity;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.*;  

public class MainActivity extends Activity {  
    CheckBox pizza,coffe,burger;  
    Button buttonOrder;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        addListenerOnButtonClick();  
    }  
public void addListenerOnButtonClick(){  
    //Getting instance of CheckBoxes and Button from the activty_main.xml file  
    pizza=(CheckBox)findViewById(R.id.checkBox1);  
    coffe=(CheckBox)findViewById(R.id.checkBox2);  
    burger=(CheckBox)findViewById(R.id.checkBox3);  
    buttonOrder=(Button)findViewById(R.id.button1);  

    //Applying the Listener on the Button click  
    buttonOrder.setOnClickListener(new OnClickListener(){  

        @Override  
        public void onClick(View view) {  
            int totalamount=0;  
            StringBuilder result=new StringBuilder();  
            result.append("Selected Items:");  
            if(pizza.isChecked()){  
                result.append("\nPizza 100Rs");  
                totalamount+=100;  
            }  
            if(coffe.isChecked()){  
                result.append("\nCoffe 50Rs");  
                totalamount+=50;  
            }  
            if(burger.isChecked()){  
                result.append("\nBurger 120Rs");  
                totalamount+=120;  
            }  
            result.append("\nTotal: "+totalamount+"Rs");  
            //Displaying the message on the toast  
            Toast.makeText(getApplicationContext(), result.toString(), Toast.LENGTH_LONG).show();  
        }  

    });  
}

答案 5 :(得分:0)

void callMethods(Checkbox checkbox1, Checkbox checkbox2){
if(checkbox1.isChecked() && checkbox2.isChecked()){
   //call method three
} 
else if(checkbox1.isChecked()){
    //call method one
  }
else if(checkbox2.isChecked()){
   //call method two
 }
}