Android 正在执行CheckBox.setChecked(),但未显示在屏幕上
我正在使用textview上的onClickListener对复选框设置Check(),并在清除SparseBooleanArray中最后选中的项时保存一个值。正在执行代码,但未显示选中的复选框Android 正在执行CheckBox.setChecked(),但未显示在屏幕上,android,checkbox,Android,Checkbox,我正在使用textview上的onClickListener对复选框设置Check(),并在清除SparseBooleanArray中最后选中的项时保存一个值。正在执行代码,但未显示选中的复选框 textView.setOnClickListener(v -> { int adapterPosition = getAdapterPosition(); if (!itemStateArray.get(adapterPosition, false
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;
}
}
正在设置动画的复选框不会显示在屏幕上 您正在使用listView/RecyclerView,对吗? 我认为实现这一点的最佳方法是告诉视图使用该方法刷新该行
recyclerView.notifyItemChanged(int)
其中int是切换che复选框的行的位置