为 select 数组索引选择随机数时应用程序崩溃

App crashing when chosing random numbers to select array index

编辑: 已解决。这是一个愚蠢的错误!感谢您的快速回复。 我有 6 个数组,每个数组有 150-200 个元素。现在,当我尝试 select 索引号时,前两个 select 非常好,但从第三个索引号开始,应用程序开始崩溃。应用只有一个 activity.

String A[]={};
String B[]={};
...
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

public void generate(View v) {
    tToast("Insult on your beep!");
    Gener();
}

public void Gener()
{

    int i1 = new Random().nextInt(A.length);
    String r1 = (A[i1]);

    int i2 = new Random().nextInt(B.length);
    String r2 = (A[i2]);

    int i3 = new Random().nextInt(C.length);
    String r3 = (A[i3]);

    int i4 = new Random().nextInt(D.length);
    String r4 = (A[i4]);

    int i5 = new Random().nextInt(E.length);
    String r5 = (A[i5]);

    int i6 = new Random().nextInt(F.length);
    String r6 = (A[i6]);

    String fin = r1 + r2 +r3 + r4 +r5 +r6;
    //Works OK up to r2 but from r3 error occurs
    final TextView mTextView = (TextView) findViewById(R.id.Gen);
    mTextView.setText(fin);
    tToast("Me works");
}
private void tToast(String s) {
    Context context = getApplicationContext();
    int duration = Toast.LENGTH_LONG;
    Toast toast = Toast.makeText(context, s, duration);
    toast.show();
}

您每次都在 select 从 A 数组中读取字符串。我假设您想从每个字符串的每个不同数组中 select。

例子

您的代码: String r5 = (A[i5])

我想你想要什么:

String r5 = (E[i5])

您正在为从 A 到 F 的每个数组计算随机索引,但试图从 A 数组中获取索引值。所以这可能会导致 ArrayIndex 异常尝试像这样更改您的代码

int i1 = new Random().nextInt(A.length);
String r1 = (A[i1]);

int i2 = new Random().nextInt(B.length);
String r2 = (B[i2]);

int i3 = new Random().nextInt(C.length);
String r3 = (C[i3]);

int i4 = new Random().nextInt(D.length);
String r4 = (D[i4]);

int i5 = new Random().nextInt(E.length);
String r5 = (E[i5]);

int i6 = new Random().nextInt(F.length);
String r6 = (F[i6]);

//Remaining code....