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