如何调用android复选框上的函数?

时间:2015-05-16 14:33:28

标签: android android-checkbox oncheckedchanged

我有一个活动,其中包含4个复选框。所以我的问题是 - 当选中所有这些复选框时,我想要弹出一条消息,应该说“好工作!”,所以我的问题是我该怎么办?

Code of the activity

Code of the checkboxes

2 个答案:

答案 0 :(得分:0)

在onCreate方法中添加此代码。

注意:您可以使用复选框数组来缩短代码。

但这有助于您了解该怎么做。

首先,您必须在java文件中创建复选框变量。然后将onCheckChanged listner设置为每个复选框。

dup

在类begin之前插入此import语句(public class flygos2 ..)。你可以看到还有其他的import语句。

                        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();

                            }
                        });

答案 1 :(得分:0)

  1. 在您的 java 文件中添加以下 updateMessage
  2. android:onClick="updateMessage" 添加到 XML 文件中的每个复选框。这样,当我们选中/取消选中复选框时,将调用 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";
    }
}