android: рандомизировать номер массива JSON

#android

#Android

Вопрос:

setImage(cachedImage1, image1, prjcts.get(x)); setImage(cachedImage2, image2, prjcts.get(x); setImage(cachedImage3, image3, prjcts.get(x));

Мне нужно заменить x из prjcts.get(x) случайным числом от 1 до максимальной записи в моем файле JSON. Максимальное число должно быть гибким, я могу добавлять и удалять запись столько, сколько захочу. И еще одна вещь, числам не разрешается совпадать друг с другом.

Кто-нибудь может мне помочь с этим?

Большое вам спасибо.

Ответ №1:

Попробуйте создать List list и заполнить его значениями от 1 до jsonMax . Затем используйте Java Collections.shuffle(..) для рандомизации списка.

 List<Integer> list = new ArrayList<Integer>();
int jsonMax = getMaxFromJSON(); //supplied by you
for(int i = 1; i<=jsonMax; i  )
    list.add(i);

Collections.shuffle(list);
  

Увеличьте через list , чтобы получить случайные числа.

Комментарии:

1. Итак, я сделал это, но затем произошел сбой программы: int i= 0; List<Целое число> list = новый ArrayList<Целое число>(); Генератор случайных чисел = новый Random(); int jsonMax = prjcts.size(); // предоставлено вами для (i = 1; i<=jsonMax; i ) list.add(i); Collections.shuffle(список); setImage(cachedImage1, image1, prjcts.get(i));

2. Я не могу помочь, не видя трассировку стека.

3. Найдите исключение в logcat. Вы можете ввести adb logcat в свою командную строку, если у вас есть adb правильная настройка переменных среды (в Windows). Он также должен быть доступен в вашей перспективе DDMS в Eclipse.