Как изменить элементы в списке Android в любой момент?
Мое приложение имеет вид списка и 2 кнопки, отправить и удалить. Мне нужно выбрать один элемент в виде списка, а затем, в зависимости от следующей нажатой кнопки, элемент изменит свой фон и цвет текста.
Я сделал это с помощью OnItemClickListener, изменив цвет нажатого элемента и сохранив его вид, чтобы изменить его позже. Но это не работает, потому что, когда я прокручиваю вид списка, появляются другие виды с измененным цветом!
Вопрос: как я могу сохранить представление ListView, чтобы изменить его, когда захочу?
Спасибо, я прочитал программно выбрать пункт ListView в Android и другие вопросы, но они не помогают мне на 100%
PD: Извините за мой английский
1 ответ
Вы должны сохранить состояние строки, чтобы реализовать это, вы должны взять список логических переменных и при запуске установить их в false, как показано ниже (в конструкторе вашего адаптера)
private ArrayList<Boolean> itemChecked = new ArrayList<Boolean>();
for (int i = 0; i < this.getCount(); i++) {
itemChecked.add(i, false); // initializes all items value with false
}
затем, когда вы щелкаете по элементу, установите для соответствующего элемента значение true. А теперь проверьте этот список на true и измените цвет строки, в которой он нашел true. Таким образом, он не изменит цвет других элементов в списке.