我正在尝试找出如何在单击用户项目时取消选择并显示新选择的项目。到目前为止,它选择了所有项目,但没有取消选择任何现有项目。
@Override
public void onBindViewHolder(@NonNull final CustomViewHolder holder, final int position) {
holder._title.setText(myModelList.get(position).getTitle());
if(myModelList.get(position).getImageId() > 0) {
holder._layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setSelectedPosition(holder, position);
}
});
}
public void setSelectedPosition(CustomViewHolder holder, int position) {
clearSelection(holder);
for (int i = 0; i < myModelList.size(); i ++) {
if(i == position) {
holder._title.setTextColor(context.getResources().getColor(R.color.red));
Log.v("TEXT colour", "selected item: " + myModelList.get(i).getTitle());
myModelList.get(i).setChecked(true);
}
}
notifyDataSetChanged();
}
public void clearSelection(CustomViewHolder holder) {
for (int i = 0; i < myModelList.size(); i ++) {
holder._title.setTextColor(context.getResources().getColor(R.color.black));
Log.v("TEXT colour", "unselected at: " + myModelList.get(i).getTitle());
myModelList.get(i).setChecked(false);
notifyItemChanged(i);
}
notifyDataSetChanged();
}