在Android中从另一个Integer []数组创建一个随机的Integer []数组

时间:2012-05-16 01:14:09

标签: android arrays random integer items

我正在创建一个在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,但应用程序是“强制关闭”我:(任何想法?

1 个答案:

答案 0 :(得分:0)

崩溃是因为你没有初始化整数数组。你必须这样做:

private Integer[] randomLetters = new Integer[9];

请记住,您当前的算法可能会重复某些字母,这有时是一种不良行为。

此外,准备好了如何使用adb logcat来检测这样的问题。你会为你和我们节省很多时间。