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 に答える