[英]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.