Я использую onClickListener для текстового представления для setCheck () для флажка и сохраняю одно значение при очистке последнего проверенного элемента в itemStateArray
, который является SparseBooleanArray.Код выполняется, но флажок не отображается.
textView.setOnClickListener(v -> {
int adapterPosition = getAdapterPosition();
if (!itemStateArray.get(adapterPosition, false)) {
if (first) {
checkBox.setChecked(true);
first = false;
lastChecked = checkBox;
} else {
if (checkBox.isChecked() && lastChecked != null) {
lastChecked.setChecked(false);
checkBox.setChecked(true);
lastChecked = checkBox;
}
}
itemStateArray.clear();
itemStateArray.put(adapterPosition, true);
} else {
checkBox.setChecked(false);
itemStateArray.clear();
itemStateArray.put(adapterPosition, false);
}
});
Я настраиваю слушателя на текстовое представление, так как хочу щелкнуть более крупное текстовое представление по сравнению с меньшим флажком сбоку экрана.
После нажатия кнопкиэлемент и прокрутка вниз и обратно, элемент отображается как проверенный. Я устанавливаю флажок, как проверено в onBindViewHolder со следующим кодом:
holder.bind(position);
Функция привязки, которую я передаюотмеченные позиции:
void bind(int position) {
if (!itemStateArray.get(position, false)) {
checkBox.setChecked(false);
} else {
checkBox.setChecked(true);
lastChecked = checkBox;
}
}
анимация флажка не отображается на экране.