2012-05-16 5 views
1

Я создаю действие, отображающее 9 изображений в GridView. Я хочу, чтобы эти изображения выбирались случайным образом из массива Integer [], который содержит 26 изображений. Так что мой лучший подход установки 26 изображений неподвижных, а затем создал новый массив и заполнить используя этот простой метод:Создание случайного массива Integer [] из другого массива Integer [] в Android

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]; 
     } 
    } 

Я думал, это будет заполнить randomLetters с 9 случайных значений из allLetters но приложение «принудительное закрытие» меня :(Любые идеи

ответ

0

это происходит сбой, потому что вы не инициализации целочисленного массива вы должны сделать что-то вроде этого:?.

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

B что ваш текущий алгоритм может повторять некоторые буквы, что иногда является нежелательным поведением.

Также, чтобы узнать, как использовать adb logcat, чтобы обнаружить такие проблемы. Вы сэкономите вас и нас много времени.

+0

Спасибо за ваш быстрый ответ Кристиан и извините за предмет лорда. Я знаю об этом, я просто не знаю, как его использовать. Эта деятельность в настоящее время является частью проекта, который я из колледжа, и я все еще изучаю некоторые вещи. – Ph0b0x

+0

Im, не ссылаясь на «creaArray()» tho .. я думаю, что проблема. Уже исправлена ​​инициализация. – Ph0b0x

+0

Проблема решена! Спасибо Кристиану. Я не ссылался на creaArray(); – Ph0b0x