每个正确答案增加分数

时间:2018-01-14 20:42:08

标签: java android

我有点卡住了......刚接触到android和Java(做在线课程),并将测验应用程序作为一个项目。我有一个带有4个复选框的问题,每个复选框中有2个是正确答案。我想用每个正确的答案将分数提高5分(如果滴答为1/2,你得到5分,如果勾选你得到10分)。我尝试使用OR运算符,但即使勾选了两个答案,我仍然只得到5分。有办法解决这个问题吗?谢谢 以下是相关代码的内容:

 @Override
public void onClickNextButton(View v) {

    CheckBox checkBox1 = findViewById(R.id.terrance);
    CheckBox checkBox2 = findViewById(R.id.jimbo);
    CheckBox checkBox3 = findViewById(R.id.phillip);
    CheckBox checkBox4 = findViewById(R.id.ike);

    if (checkBox1.isChecked() || checkBox3.isChecked()) {
        MainActivity.score += 5;

    } else if (checkBox2.isChecked() || (checkBox4.isChecked())) {

    } else {
        Toast.makeText(getApplicationContext(), "You must pick an answer", Toast.LENGTH_SHORT).show();
        return;
    }

    Intent intent = new Intent(this, Answer_4.class);
    startActivity(intent);
}

2 个答案:

答案 0 :(得分:0)

我想假设chk1和chk2是正确的答案,所以你必须为每个人使用不同的IF:

if (checkBox1.isChecked())
    MainActivity.score += 5;
if (checkBox3.isChecked())
    MainActivity.score += 5;

另一个问题是您使用 public void onClickNextButton(View v),这对于您的工作的Checkbox不合适,最好使用

  

setOnCheckedChangeListener(new OnCheckedChangeListener()...

看看How to receive a event on android checkbox check change

答案 1 :(得分:-1)

我看到了不同的解决方案,您只需添加几行即可修复它:

if (checkBox1.isChecked() || checkBox3.isChecked()) {
    if (checkBox1.isChecked())
        MainActivity.score += 5;
    if (checkBox3.isChecked())
        MainActivity.score += 5;
} else ...