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时..
答案 0 :(得分:4)
希望我理解你:
if (q1.isChecked() && q2.isChecked() && !q3.isChecked() && !q4.isChecked()) {
new AlertDialog.Builder(this).setMessage(R.string.positive).show();
}
仅在检查q1
和q2
且其他两项未选中时才有效。
答案 1 :(得分:0)
如果检查了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
作为第二个条件(它们都不会发生)。