1. 先看一下效果图
01.jpg
2. 主要实现思路
2.1. 适配器定义全局变量(点击的下标)
private int selectNum = -1;
2.2. 点击事件得到条目的position
holder.llItem.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View view) {
if (listener != null) {
listener.onItemClickListener(position);
}
//点击进行重新赋值
selectNum = position;
//刷新适配器
notifyDataSetChanged();
}
});
2.3. 对全局定义的变量进行重新赋值 之后刷新适配器
3. 代码部分
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
holder.mTvTese.setText("测试数据" + mTestBeans.get(position).getId());
if (position == selectNum) {
holder.mTvTese.setTextColor(context.getResources().getColor(R.color.colorTest));
holder.mIvTest.setImageDrawable(context.getDrawable(R.drawable.image_select));
} else {
holder.mTvTese.setTextColor(context.getResources().getColor(R.color.color8888));
holder.mIvTest.setImageDrawable(context.getDrawable(R.drawable.image_noselect));
}
holder.llItem.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View view) {
if (listener != null) {
listener.onItemClickListener(position);
}
selectNum = position;
notifyDataSetChanged();
}
});
}