1

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

4

1 回答 1

0

它崩溃是因为您尚未初始化整数数组。你必须这样做:

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

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

另外,准备好如何使用adb logcat以检测此类问题。您将为您和我们节省很多时间。

于 2012-05-16T01:21:20.400 回答