Добрый день.
Нужен совет, вот с такой проблемой.
Есть 20 button, инициализированы в onCreate().
Далее
int t=0; Random r;
ArrayList<Map<String, Object>> bdr;
final String BUTTON_ID="buttonID";
final String BUTTON_DRAWABLE="buttonDrawable";
ArrayList<Integer> myImages;
int testViewId= 0;
int testBGId= 0;
...........
............
t = r.nextInt(myImages.size()-1); // случайный индекс
Log.d(LOG_TAG,"b8 Id = "+b8.getId());
Log.d(LOG_TAG,"BG "+t + " = "+myImages.get(t));
m= new HashMap<String, Object>(); добавляем в массив
m.put(BUTTON_ID, b8.getId());
m.put(BUTTON_DRAWABLE, myImages.get(t));
bdr.add(m);
testViewId= b8.getId();
testBGId= myImages.get(t);
Log.d(LOG_TAG, "tested Vars = "+testViewId+ " - "+ testBGId);
myImages.remove(t); // удаляем из массива откуда брали чтобы не повторяться
// так 20 раз
// и тут же ничего не меняя в массиве bdr
for (int i=0; i<bdr.size();i++)
{
Log.d(LOG_TAG, i+" Button ID "+bdr.get(i).get(BUTTON_ID));
Log.d(LOG_TAG, "Drawable "+bdr.get(i).get(BUTTON_DRAWABLE));
}
Вот что в логах
01-13 22:54:02.398: D/mLog(14394): b8 Id = 2131296293
01-13 22:54:02.398: D/mLog(14394): BG 1 = 2130837572
01-13 22:54:02.398: D/mLog(14394): tested Vars = 2131296293 - 2130837572
........................
.........................
01-13 22:54:02.413: D/mLog(14394): 6 Button ID 2131296292
01-13 22:54:02.413: D/mLog(14394): Drawable 2130837525
01-13 22:54:02.413: D/mLog(14394): 7 Button ID 2131296294
01-13 22:54:02.413: D/mLog(14394): Drawable 2130837572
01-13 22:54:02.413: D/mLog(14394): 8 Button ID 2131296294
01-13 22:54:02.413: D/mLog(14394): Drawable 2130837572
01-13 22:54:02.398: D/mLog(14394): tested Vars = 2131296293 - 2130837572
Вот вопрос если я ничего не менял в массиве а только его заполнил что отражается в логах то когда поменялось значение в массиве?
при этом явно назначенные значения в переменных testViewId= b8.getId(); testBGId= myImages.get(t); не поменялись.
Обратите внимание в массиве теперь две одинаковые ID
Для чистоты эксперимента убрал весь остальной код. Оставил только логи и слушатели на кнопках. Слушатель на v.getId() отдает правильное значение, но вот при попытке найти это значение в массиве, уже его не находит. Потому что его там уже нет.
Где может быть ошибка? Куда смотреть?
Заранее спасибо если найдете время на мое обращение.
С Уважением.
Alexander Tsoy
Самопроизвольно меняются значения в массиве с viewID
Re: Самопроизвольно меняются значения в массиве с viewID
Саша, никто не найдет времени на то, чтоб разбирать твой неотформатированный код. Исправь его в редакторе (ниже есть кнопочка "редактор") и больше так не делай.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Самопроизвольно меняются значения в массиве с viewID
присоединяюсь