在Android中使用多维数组

在Android中使用多维数组,android,multidimensional-array,Android,Multidimensional Array,这是我编辑的代码: 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

这是我编辑的代码:

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(4) ;
            // 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{
                  displayExpression.setText("INCORRECT");

              }

         }

    }

}

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

}


}
package com.gamesup.braingame;
导入java.util.Random;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类轻松扩展活动实现OnClickListener{
编辑文本显示;
//这个数组表示,我是一个保存数组的数组
字符串[][]多数组={{“4+5”,“9”},
{"20 * 3","60"},
{"99 - 9","90"}};  
文本视图显示表达式;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.easy);
display=(EditText)findViewById(R.id.displayText);
display.setText(“?”);
displayExpression=(TextView)findViewById(R.id.expression);
按钮生成=(按钮)findViewById(R.id.random\u gen);
generate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Random ranGenerate=新的Random();
int random=ranGenerate.nextInt(4);
//随机提出你的问题
字符串Rquestion=multiArray[random][0];
displayExpression.setText(Rquestion);
}
});
}
静态布尔值isEmpty=true;
已单击的公共无效数量(视图v){
按钮btn=(按钮)findViewById(v.getId());
//获取button对象并使用视图获取按钮的id
if(v.getId()==R.id.del_按钮){
字符串s=display.getText().toString();
s=s.substring(0,s.length()-1);
display.setText;
返回;
}
如果(我是空的){
display.setText(btn.getText());
isEmpty=false;
}
否则{
display.append(btn.getText().toString());
}
}
已单击的公共无效哈希(视图v){
if(v.getId()==R.id.hash_按钮){
//从编辑文本中获取答案
字符串应答=display.getText().toString();
//使用for循环在基索引上迭代
对于(int i=0;i
在用户输入错误答案并再次单击随机生成器按钮(random_gen)后,我的应用程序将以错误关闭。这是否与在onClick方法中创建的多数组有关?我要怎么做才能解决这个问题

编辑:

现在,当我按下hash按钮时,它显示不正确,是否必须为每个位置添加不同的if语句

 Random ranGenerate = new Random ();
 int random = ranGenerate.nextInt(4) ;
nextInt(4)可以给出0-3范围内的值。数组的值在0-2之间


更改为
int random=ranGenerate.nextInt(3)
或向数组添加另一项。

您的ranGenerate将生成从0到3的整数,数组索引从0到2,因此如果random恰好是3,则会出现异常

使用以下命令将生成的最大整数更改为2:

int random = ranGenerate.nextInt(3);  //this generates integers from 0 to 2
或者更好—使用数组的长度,以便以后添加更多数组时,不必更改随机生成代码:

int random = ranGenerate.nextInt(multiArray.length);

谢谢:)我没看到。但现在,当我按下哈希按钮时,即使答案正确,它也不会显示CORRECT,我是否必须为每个位置添加不同的if语句?谢谢:)我没有看到。但是现在,当我按下hash按钮时,即使答案正确,它也不会显示CORRECT,我是否必须为每个位置添加不同的if语句?每次都显示不正确。我建议您接受其中一个答案,并用显示哈希按钮的问题制定一个新问题。