我有点卡住了......刚接触到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);
}
答案 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()...
答案 1 :(得分:-1)
我看到了不同的解决方案,您只需添加几行即可修复它:
if (checkBox1.isChecked() || checkBox3.isChecked()) {
if (checkBox1.isChecked())
MainActivity.score += 5;
if (checkBox3.isChecked())
MainActivity.score += 5;
} else ...