package com.xw.yunwei.ui.task.create import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.xw.common.utils.BindUtils.getResColor import com.xw.yunwei.R import com.xw.yunwei.model.Category class LeftCategoryAdapter( private var categories: List, private val onItemClick: (Category, Int) -> Unit ) : RecyclerView.Adapter() { var selectedPosition = 0 @SuppressLint("NotifyDataSetChanged") set(value) { field = value notifyDataSetChanged() } class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val tvCategory: TextView = itemView.findViewById(R.id.tvLeft) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_accident_left_filter, parent, false) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, @SuppressLint("RecyclerView") position: Int) { val category = categories[position] holder.tvCategory.text = category.name // 设置选中效果 if (selectedPosition == position) { holder.tvCategory.setBackgroundResource(R.color.white) holder.tvCategory.setTextColor(getResColor(com.xw.common.R.color.blue_5)) } else { holder.tvCategory.setBackgroundColor(0xffF4F5F7.toInt()) holder.tvCategory.setTextColor(getResColor(com.xw.common.R.color.gray_9)) } holder.itemView.setOnClickListener { val previousSelected = selectedPosition selectedPosition = position notifyItemChanged(previousSelected) notifyItemChanged(position) onItemClick(category, position) } } override fun getItemCount() = categories.size }