我在 recyclerview 中的适配器更改了 2 个项目而不是 1 个项目的背景颜色

问题描述

我在 recyclerview 中有 10 个这样的项目。我的问题是当我单击一个项目时,我会更改背景颜色,但由于某种原因,另一个项目也会更改其背景颜色。我不知道为什么会这样。

例如,如果我单击第一个项目并更改颜色,则位置 8 的项目也会更改其颜色。我只想要我点击的项目改变它的颜色。

enter image description here

这是我的代码

 override fun onBindViewHolder(holder: MyViewHolder,position: Int) {
    val titulo = holder.itemView.findViewById(R.id.txt_categoria) as TextView

    titulo.text = categories[position].name_category!!

    holder.itemView.setonClickListener{

        when{
            textView == null ->{
                textView = holder.itemView.txt_categoria
                textView!!.setBackgroundResource(R.drawable.design_categories_project)
                textView!!.setTextColor(Color.WHITE)
                fragmentProyectos.filterProjects(categories[position].id_categorie!!,categories[position].name_category!!)
            }
            posClicked != position ->{
                holder.itemView.txt_categoria.setBackgroundResource(R.drawable.design_categories_project)
                holder.itemView.txt_categoria.setTextColor(Color.WHITE)

                textView!!.setBackgroundResource(R.drawable.design_categories_project_white)
                textView!!.setTextColor((Color.parseColor("#343434")))
                textView = holder.itemView.txt_categoria
                fragmentProyectos.filterProjects(categories[position].id_categorie!!,categories[position].name_category!!)
            }
            else ->{
                textView!!.setBackgroundResource(R.drawable.design_categories_project_white)
                textView!!.setTextColor((Color.parseColor("#343434")))
                textView = null
                fragmentProyectos.getData()
            }
        }

        posClicked = position
    }
}

解决方法

尝试像这样设置颜色:

titulo.setTextColor((Color.parseColor("#343434")))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...