2014-02-20 71 views
0

在我的遊戲中,我有一個散列按鈕,它像一個提交按鈕。當我按下散列按鈕時,即使答案正確,它也顯示爲「錯誤」,我是否必須爲數組中的每個位置添加不同的if語句?它顯示INCORRECT每個表達式。在Android中的數學遊戲中顯示答案

(對不起,我是一個在這個新)

package com.gamesup.braingame; 

import java.util.Random; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Easy extends Activity implements OnClickListener{ 

EditText display; 
// This Array says , I am an array that holds arrays 
String [][] multiArray = {{"4 + 5", "9"},  
     {"20 * 3","60"}, 
     {"99 - 9","90"}}; 
TextView displayExpression; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.easy); 

    display = (EditText)findViewById(R.id.displayText); 
    display.setText("?"); 

    displayExpression = (TextView) findViewById(R.id.expression); 
    Button generate = (Button) findViewById(R.id.random_gen); 

    generate.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Random ranGenerate = new Random(); 
      int random = ranGenerate.nextInt(multiArray.length) ; 
      // Fetch your random question 
      String Rquestion = multiArray[random][0]; 
      displayExpression.setText(Rquestion); 


     } 
    }); 

} 

static boolean isEmpty = true; 

public void num_Clicked(View v){ 
    Button btn = (Button) findViewById(v.getId()); 
    //getting the button object and using a view to get the id of the buttons 

    if (v.getId()== R.id.del_button){ 
      String s = display.getText().toString(); 
      s = s.substring(0, s.length() - 1); 
      display.setText(s); 
      return; 
    } 


    if(isEmpty){ 
     display.setText(btn.getText()); 
     isEmpty = false; 
    } 
    else{ 
     display.append(btn.getText().toString()); 



} 

public void hash_Clicked(View v){ 

    if (v.getId()== R.id.hash_button){ 


     // Get the Answer from your EditText 
     String answer = display.getText().toString(); 

     // Using a for loop iterate on the base index 
     for(int i = 0; i < multiArray.length ; i++) 
     { 
       // if the answer is in position 1 of Array [i] 
       if(answer.equals(multiArray[i][1])) 
       { 
       // We have found the answer, Congratulate the User 
        displayExpression.setText("CORRECT"); 

       }else{ 
        // Tell them how bad they are since they can't solve simple equations! 
        displayExpression.setText("INCORRECT"); 

       } 



     } 

    } 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

} 


} 

回答

0

break聲明告訴你之後,答案是正確的,所以你不要你的數組中通過其餘的答案迭代,並與比較當前,因爲如果在索引0處有正確的答案,那麼您仍然會經歷數組中剩餘的答案,因此您的「正確」將被「錯誤」替換。

// if the answer is in position 1 of Array [i] 
if(answer.equals(multiArray[i][1])) 
{ 
    // We have found the answer, Congratulate the User 
    displayExpression.setText("CORRECT"); 

    break; //<---add this to exit the loop, because correct answer has been found 
} 
+0

謝謝你解釋它:) – sumr