如何在选中 android 复选框时调用函数?
How to call function on android checkbox checked?
我有一个 activity,其中包含 4 个复选框。所以我的问题是 - 当所有这些复选框都被选中时,我想要弹出一条消息,应该说 "Good job!",所以我的问题是我该怎么做?
将此代码添加到您的 onCreate 方法中。
注意:您可以使用复选框数组来缩短代码。
但这将帮助您了解该怎么做。
首先,您必须在 java 文件中创建复选框变量。然后为每个复选框设置 onCheckChanged 侦听器。
CheckBox cb1=(CheckBox)findViewById(R.id.checkBox);
CheckBox cb2=(CheckBox)findViewById(R.id.checkBox2);
CheckBox cb3=(CheckBox)findViewById(R.id.checkBox3);
CheckBox cb4=(CheckBox)findViewById(R.id.checkBox4);
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
在 class 开始之前插入此导入语句 (public class flygos2..)。您可以看到还有其他导入语句。
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
- 在您的 java 文件中添加以下
updateMessage
。
- 将
android:onClick="updateMessage"
添加到 XML 文件中的每个复选框。这样,当我们 checked/un-checked 复选框时,将调用 updateMessage
方法。
public void updateMessage(View view) {
String message = "";
CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox);
CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
if (cb1.isChecked() && cb2.isChecked() && cb3.isChecked() && cb4.isChecked()) {
message = "Good Job";
} else if (cb1.isChecked() && cb2.isChecked() && cb3.isChecked()) {
message = "One Check box is missed";
} else {
message = "try again";
}
}
我有一个 activity,其中包含 4 个复选框。所以我的问题是 - 当所有这些复选框都被选中时,我想要弹出一条消息,应该说 "Good job!",所以我的问题是我该怎么做?
将此代码添加到您的 onCreate 方法中。
注意:您可以使用复选框数组来缩短代码。
但这将帮助您了解该怎么做。
首先,您必须在 java 文件中创建复选框变量。然后为每个复选框设置 onCheckChanged 侦听器。
CheckBox cb1=(CheckBox)findViewById(R.id.checkBox);
CheckBox cb2=(CheckBox)findViewById(R.id.checkBox2);
CheckBox cb3=(CheckBox)findViewById(R.id.checkBox3);
CheckBox cb4=(CheckBox)findViewById(R.id.checkBox4);
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb3.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
cb4.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(cb1.isChecked()&&cb2.isChecked()&&cb3.isChecked()&&cb4.isChecked())
Toast.makeText(getApplicationContext(),"Good job." , Toast.LENGTH_SHORT).show();
}
});
在 class 开始之前插入此导入语句 (public class flygos2..)。您可以看到还有其他导入语句。
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
- 在您的 java 文件中添加以下
updateMessage
。 - 将
android:onClick="updateMessage"
添加到 XML 文件中的每个复选框。这样,当我们 checked/un-checked 复选框时,将调用updateMessage
方法。
public void updateMessage(View view) {
String message = "";
CheckBox cb1 = (CheckBox) findViewById(R.id.checkBox);
CheckBox cb2 = (CheckBox) findViewById(R.id.checkBox2);
CheckBox cb3 = (CheckBox) findViewById(R.id.checkBox3);
CheckBox cb4 = (CheckBox) findViewById(R.id.checkBox4);
if (cb1.isChecked() && cb2.isChecked() && cb3.isChecked() && cb4.isChecked()) {
message = "Good Job";
} else if (cb1.isChecked() && cb2.isChecked() && cb3.isChecked()) {
message = "One Check box is missed";
} else {
message = "try again";
}
}