package com.example.des;
import com.example.des.Question1;
import com.example.des.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;
public class Question1 extends Activity implements OnClickListener{
CheckBox q1;
CheckBox q2;
CheckBox q3;
CheckBox q4;
Button btndone;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.question);
q1 = (CheckBox)findViewById(R.id.q1a);
q2 = (CheckBox)findViewById(R.id.q2a);
q3 = (CheckBox)findViewById(R.id.q3a);
q4 = (CheckBox)findViewById(R.id.q4a);
btndone = (Button) findViewById(R.id.done);
btndone.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (q1.isChecked() && q2.isChecked()) {
new AlertDialog.Builder(this).setMessage(R.string.positive).show();
}
if (q3.isChecked() && q4.isChecked()) {
new AlertDialog.Builder(this).setMessage(R.string.negative).show();
}
}
}
如果q1和q2被检查,那么结果必须为正,然后,如果q3和q4则必须为负。.但是当我检查q1,q2和q3 ..时,它也变为正,并且不应给出结果。不仅检查q1和q2。
最佳答案
您提到了如果检查1、2和3时出现的问题,但是我认为如果检查2、3和4或类似情况也将是一个问题。您将需要同时更改两个if语句。
// if 1 and 2 are checked, but 3 and 4 aren't
if (q1.isChecked() && q2.isChecked() && !q3.isChecked() && !q4.isChecked()) {
new AlertDialog.Builder(this).setMessage(R.string.positive).show();
}
// otherwise, if 3 and 4 are checked, but 1 and 2 aren't
else if (q3.isChecked() && q4.isChecked() && !q1.isChecked() && !q2.isChecked()){
new AlertDialog.Builder(this).setMessage(R.string.negative).show();
}
对于第二种情况,您也可以使用
else if
而不是if
(它们都不会发生)。关于java - 缺少的代码是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21224737/