Android RecyclerView实现选中Item变色的最精简高效实现(绝不会出现点击时其它item偶尔也被选中现象)

本文介绍了如何在RecyclerView中处理点击事件,通过在Adapter中保存选中位置并监听点击,动态改变被选中item的背景色,确保只有当前点击的item变色,解决了其他item偶尔也会被同步选中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果:

 核心代码如下:

// 首先在RecyclerView的Adapter中定义一个变量来保存选中的位置
private int selectedPosition = -1;

// 在ViewHolder的构造函数中设置itemView的点击事件
public ViewHolder(View itemView) {
    super(itemView);
    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 获取当前点击的位置
            int position = getAdapterPosition();
            // 如果当前位置和之前选中的位置不同,则更新选中位置,并刷新RecyclerView
            if (position != selectedPosition) {
                selectedPosition = position;
                notifyDataSetChanged();
            }
        }
    });
}

// 在Adapter的onBindViewHolder方法中根据选中位置来设置itemView的背景色
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if (selectedPosition == position) {
        holder.itemView.setBackgroundColor(Color.parseColor("#FF4081"));
    } else {
        holder.itemView.setBackgroundColor(Color.parseColor("#FFFFFF"));
    }
}

代码超精简,试一下您就知道了。跟网上其它的教程不同,绝不会出现点击时其它item偶尔也被同步选中改变颜色导致乱串的现象

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值