这应该是一个简单的修复,但我不能得到它?!
我想从一个整数数组中随机选择一个整数并加载它的位图 - 有时它会通过,但大多数情况下它会出错 - 我不知道我是怎么走出数组的? / p>
起初我使用了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异常
为什么这会崩溃?
答案 0 :(得分:3)
因为必须
ImageIds = new Integer[10];
您设置了10张图片,但创建了大小为9的数组。 还要查看日志中的行,这会导致错误。这真的有帮助。