【问题标题】:Randomly selected index in integer array causing crash整数数组中随机选择的索引导致崩溃
【发布时间】:2011-09-02 02:41:06
【问题描述】:

这应该是一个简单的解决方法,但我就是不明白?!

我想从一个整数数组中随机选择一个整数并加载它的位图 - 有时它会通过但大多数时候它会出错 - 我看不出我是如何离开数组的?

起初我使用 array.length() 然后 array.length() - 1,但现在我在开始和结束之间安全地使用了一个范围 ~ 这不是我想要做的

    public int GetRandomNumber(int min, int max) {
    return min + (int)(Math.random() * ((max - min) + 1));
}

public void Whatever()
{

    Integer[] ImageIds;
    ImageIds = new Integer[9];
    ImageIds[0] = R.drawable.splatter1;
    ImageIds[1] = R.drawable.splatter2;
    ImageIds[2] = R.drawable.splatter3;
    ImageIds[3] = R.drawable.splatter4;
    ImageIds[4] = R.drawable.splatter5;
    ImageIds[5] = R.drawable.splatter6;
    ImageIds[6] = R.drawable.splatter7;
    ImageIds[7] = R.drawable.splatter8;
    ImageIds[8] = R.drawable.splatter9;
    ImageIds[9] = R.drawable.splatter10;

Bitmap Asset;

    for (int i = 0; i < splatters.length; i++) {

        int RandomIndex = GetRandomNumber(0, 9);

        Asset = BitmapFactory.decodeResource(mContext.getResources(), ImageIds[RandomIndex ]);

     }
 }

我得到一个 ArrayIndexOutOfBounds 异常

为什么会崩溃?

【问题讨论】:

    标签: android arrays random


    【解决方案1】:

    因为必须是

    ImageIds = new Integer[10];

    您设置了 10 张图像,但创建了大小为 9 的数组。 还要查看日志中的行,这会导致错误。真的很有帮助。

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2014-04-28
      相关资源
      最近更新 更多