Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Замена объекта из массива

#android


Есть массив из фото (из 25 штук):

private int[] image_res = {R.drawable.res_null, R.drawable.res_null, R.drawable.res_null}


Пытаюсь заменить фото на другое фото. Использую image_res.set(2, R.drawable.rees_ok);
но пишет 


  cannot resolve method set (int, int).


Какую ошибку я допускаю? 
    


Ответы

Ответ 1



Так у Вас же массив, а не коллекция. Установка значения в массив происходит так: image_res[2] = R.drawable.rees_ok;

Ответ 2



вы путаете тип объекта с которым работаете. image_res[2] = R.drawable.rees_ok;

Ответ 3



Ну так у массива нет такого метода ArrayList image_res = new ArrayList<>(Arrays.asList(new int[]{R.drawable.res_null, R.drawable.res_null, R.drawable.res_null})) image_res.set(2, R.drawable.rees_ok);

Ответ 4



Вы используете обычный массив для хранения своих фотографий, он не реализует такой метод. Самый топорный способ решить вашу задачу: for (int i = 0; i < image_res.length; i++) { if (image_res[i] == A) { A = B; } } Это плохой вариант. UPD: разумеется, это если индекс заменяемого элемента неизвестен. Используемый вами метод реализуется в классе ArrayList. Подумайте, не использовать ли в вашем случае такую структуру?

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

Отправить комментарий