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/

10-11 20:31