我正在创建一个在GridView中显示9个图像的活动。我希望从包含26个图像的Integer []数组中随机选择这些图像。因此,我最好的方法是将26个图像设置为固定,然后使用这个简单的方法创建一个新数组并填充:
public Integer [] allLetters = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l, R.drawable.m, R.drawable.m, R.drawable.o, R.drawable.p, R.drawable.q, R.drawable.r, R.drawable.s, R.drawable.t, R.drawable.u, R.drawable.v, R.drawable.w, R.drawable.x, R.drawable.y, R.drawable.z }; private Integer[] randomLetters=null; public int index=0; public Random r= new Random(); public void creaArray() { for (int i = 0; i < 9; i++){ index=r.nextInt(26); randomLetters[i]=allLetters[index]; } }
我认为这会填充来自allLetters的9个随机值的randomLetters,但应用程序是“强制关闭”我:(任何想法?
答案 0 :(得分:0)
崩溃是因为你没有初始化整数数组。你必须这样做:
private Integer[] randomLetters = new Integer[9];
请记住,您当前的算法可能会重复某些字母,这有时是一种不良行为。
此外,准备好了如何使用adb logcat
来检测这样的问题。你会为你和我们节省很多时间。