java - Android RecyclerView.Adapter更改图标onClick

标签 java android performance android-recyclerview

我创建了一个列表项,末尾有一个图标。使用RecyclerView.Adapter

在图标onClick上,我想更改图标。 (我能做到)。但是当您向上或向下滚动列表时,其他随机列表项图标会发生变化。

public void onBindViewHolder(StatusViewHolder holder, int position) {
                ...

final InviteFriend data = mInviteFriend.get(position);

    if(data.isSelected()) { 

                holder.imageView.setImageResource(R.drawable.ic_person_black_24dp); }
                holder.imageView.setTag(data);

                holder.imageView.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View view) {
                        ImageView imageView = (ImageView) view;
                        InviteFriend inviteFriend = (InviteFriend) imageView.getTag();
                        inviteFriend.setSelected(true);
                        imageView.setImageResource(R.drawable.ic_person_black_24dp);
                        notifyCounterChanged(true);
                    }
                });

    }

最佳答案

在回收器 View 中, View 将被回收以节省内存使用
所以你需要在你的条件中添加 else

if(data.isSelected()) { 
    // your original code
} else {
    holder.imageView.setImageResource(R.drawable.your_drawable);
    //Put another code if you want
}

关于java - Android RecyclerView.Adapter更改图标onClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33949170/

相关文章:

android - 如何在自定义适配器类中发送服务器请求后更改 Listview 按钮名称?

python - 用每个数据列的偏移量填充一个 numpy 数组

JAVA猜数游戏使用方法: method for play again does not work properly

java - 如何向需要查询实体以执行验证的 JPA 实体添加验证

java - 从 .Net Core 使用 JAR

java - 如何让字符串格式的百分比符号得到搜索结果?

android - 无法解析 : androidx. 生命周期 :lifecycle-viewmodel-ktx:1. 1.1

安卓 : widget size for all screen

java - 为什么我的 Java 应用程序在 AMD 处理器上运行速度更快?

performance - Oracle,更新语句如何工作