我有两个CheckBoxes我们将它视为ChckBx1和ChckBx2。
现在我需要在checkBoxes上调用或不调用几个方法调用。
要获得更多许可,如果选中chckBx1,则调用Method1,如果选中ChckBx2,则调用Method2,如果选中了两个CheckBox,则调用Method3。
有三种不同的条件。
请提供一些代码或示例。
感谢任何帮助。
答案 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
}
}