2014-02-20 4 views
0

В моей игре у меня есть кнопка хеша, которая действует как кнопка отправки. когда я нажимаю кнопку хэша, он отображает INCORRECT, даже если ответ верен. Должен ли я добавить другой оператор 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 заявление после того, как вы показываете, что ответ правильный, так что вы не перебирать остальные ответы в массиве и сравните с current, потому что, если у вас есть правильный ответ, скажем, индекс 0, вы все равно просматриваете оставшиеся ответы в массиве, поэтому ваш «CORRECT» заменяется на «INCORRECT».

// 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

Смежные вопросы