Как изменить элементы в списке 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. Таким образом, он не изменит цвет других элементов в списке.

Другие вопросы по тегам