【问题标题】:Creating a random Integer[] array of images from another Integer[] array in Android从 Android 中的另一个 Integer[] 数组创建一个随机的 Integer[] 图像数组
【发布时间】:2012-05-23 13:26:25
【问题描述】:

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

【问题讨论】:

    标签: android arrays random integer items


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的快速回答克里斯蒂安和对 logcat 的事情感到抱歉。我知道它我只是不知道如何使用它。这项活动目前是我大学时的一个项目的一部分,我还在学习一些东西。
    • 我没有对“creaArray()”做任何引用。我认为这就是问题所在。已经修复了初始化的事情。
    • 问题解决了!谢谢克里斯蒂安。我没有提及 creaArray();
    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2012-12-16
    • 2017-05-06
    相关资源
    最近更新 更多