簡體   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