问题描述
我在 recyclerview 中有 10 个这样的项目。我的问题是当我单击一个项目时,我会更改背景颜色,但由于某种原因,另一个项目也会更改其背景颜色。我不知道为什么会这样。
例如,如果我单击第一个项目并更改颜色,则位置 8 的项目也会更改其颜色。我只想要我点击的项目改变它的颜色。
这是我的代码:
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")))