Самопроизвольно меняются значения в массиве с viewID

Интерфейс, диалоги, темы, стили, меню
Ответить
meerz
Сообщения: 7
Зарегистрирован: 14 сен 2013, 02:14

Самопроизвольно меняются значения в массиве с viewID

Сообщение meerz » 26 фев 2014, 02:25

Добрый день.

Нужен совет, вот с такой проблемой.

Есть 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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Самопроизвольно меняются значения в массиве с viewID

Сообщение Foenix » 26 фев 2014, 06:59

Саша, никто не найдет времени на то, чтоб разбирать твой неотформатированный код. Исправь его в редакторе (ниже есть кнопочка "редактор") и больше так не делай.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Re: Самопроизвольно меняются значения в массиве с viewID

Сообщение adarash » 26 фев 2014, 17:53

присоединяюсь

Ответить