2014-01-20 86 views
1
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時,它也變爲正值,它不應該給出result..when它不僅Q1和Q2檢查..這是什麼缺少的代碼。?

回答

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的第二個條件(它們都不可能發生)。

+0

是的,它的工作..很多.. .. – user3085149

+0

其實..它是一個專家系統..所以我會用很多的條件.. ..也許高達q9 ..及其約800 +組合 – user3085149

4

希望我理解你的權利:

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

如果q1q2檢查和其他兩個不是隻會工作。

+0

是的..謝謝你..也許是解決方案.. – user3085149