缺少什么代码。?

时间:2014-01-20 01:04:40

标签: java android

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时..

2 个答案:

答案 0 :(得分:4)

希望我理解你:

if (q1.isChecked() && q2.isChecked() && !q3.isChecked() && !q4.isChecked()) {
     new AlertDialog.Builder(this).setMessage(R.string.positive).show();         
}

仅在检查q1q2且其他两项未选中时才有效。

答案 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作为第二个条件(它们都不会发生)。