#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.