【问题标题】:Increase score with each correct answer [closed]每个正确答案都会增加分数[关闭]
【发布时间】:2018-06-23 13:13:54
【问题描述】:

我有点卡住... 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);
}

【问题讨论】:

  • take the tour 了解该网站的运作方式以及此处的主题有哪些问题,并edit 相应地提出您的问题。另见:Why is "Can someone help me?" not an actual question?
  • 因为你使用了OR运算符,即使你选择了两个正确的答案,你仍然只能得到5分。一种简单的解决方案是在两个单独的 if 语句中检查它们,例如 if (checkBox1.isChecked()) { } if (checkBox3.isChecked()) { }

标签: java android


【解决方案1】:

我会假设 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 是的,对不起,我错过了一行....现在可以使用了!如此简单的解决方案...非常感谢!
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2013-05-05
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多