我有一个RecyclerView
,当用户点击某个项目时,RecyclerView
的背景颜色会发生变化。当用户点击另一个项目时,我希望前一个选定项目的背景颜色恢复正常,并且要更改新项目的背景颜色。我该怎么做?
答案 0 :(得分:1)
简单的方法是有一个全局变量,保存点击项目的位置和notifyDataSetChanged
,并在onBindView
比较位置,如果相等,则设置背景颜色,否则将其设置为正常。
代码段
int clickedPosition;
boolean clicked;
public void onBindView(ViewHolder holder,int position){
//your code
if(clicked){
if(position == clickedPosition)
holder.itemView.setBackgroundColor(...);
else
holder.itemView.setBackGroundColor(..your default color..);
}
holder.itemView.setOnClickListener(...){
clickedPosition = position;
clicked = true;
notifyDataSetChanged();
}
}