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.Item
|
import kotlin.collections.filter
|
|
class RightItemAdapter(
|
private var items: List<Item>,
|
private val onItemClick: ((Item, Int) -> Unit)? = null
|
) : RecyclerView.Adapter<RightItemAdapter.ViewHolder>() {
|
|
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
val tvItem: TextView = itemView.findViewById(R.id.tvRight)
|
}
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
val view = LayoutInflater.from(parent.context)
|
.inflate(R.layout.item_accident_right_filter, parent, false)
|
return ViewHolder(view)
|
}
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
val item = items[position]
|
holder.tvItem.text = item.name
|
|
// 设置选中效果
|
if (item.isSelected) {
|
holder.tvItem.setBackgroundResource(R.drawable.shape_blue_1_bg_4)
|
holder.tvItem.setTextColor(getResColor(com.xw.common.R.color.blue_5))
|
} else {
|
holder.tvItem.setBackgroundResource(R.drawable.shape_0831456a_bg_4)
|
holder.tvItem.setTextColor(getResColor(com.xw.common.R.color.gray_9))
|
}
|
|
holder.itemView.setOnClickListener {
|
// 切换选中状态
|
item.isSelected = !item.isSelected
|
notifyItemChanged(position)
|
onItemClick?.invoke(item, position)
|
}
|
}
|
|
override fun getItemCount() = items.size
|
|
@SuppressLint("NotifyDataSetChanged")
|
fun updateData(newItems: List<Item>) {
|
items = newItems
|
notifyDataSetChanged()
|
}
|
|
fun getSelectedItems(): List<Item> {
|
return items.filter { it.isSelected }
|
}
|
}
|