繁体   English   中英

recyclerView android上只能点击一项

[英]Only one item may be clicked on recyclerView android

我的应用程序有一个回收站视图。 我想防止在我的 recyclerView 上进行多项选择,因为在尝试删除项目时出现意外输出。

        holder.mView.setOnClickListener(v -> {
        if (null != mListener) {
            mListener.onPreviewItemClicked(position);

            if (holder.isSelected) {
                holder.mView.setBackgroundColor(Color.TRANSPARENT);
                Log.d("positionClicked adapter",position+"");
                holder.isSelected = false;
                isSelected = holder.isSelected;
            } else {
                holder.mView.setBackgroundColor(ContextCompat.getColor(mContext, (R.color.accent_light)));
                holder.isSelected = true;
                positionClicked = position;
                isSelected = holder.isSelected;
            }
        }
    });

在我的代码中,我使用is Selected布尔值来捕获是否单击了某些内容。 当我点击一个项目时,它的背景会发生变化。 事情是 :

如果我点击 item1,然后点击 item2,这两个项目的背景都改变了,我只想有一个。 当我点击项目时,下面的代码就完成了。 但是,如果我再次单击 item2,它会变得透明,这很好! 但是我选择的项目的位置是错误的(应该是 1,但它是 2,因为最后选择的项目是 2)。 所以当我删除时,它会删除第二个项目而不是第一个......

我使用positionClicked变量删除。

关于如何解决这个问题的任何想法?

如果您的模型中选择了项目,您应该保留,并在onBindViewHolder使用它来设置onBindViewHolder背景。 OnClickListener只需为特定数据项设置true ,为所有其他项设置 false,然后调用notifyDataSetChanged()重新绑定所有项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM