package com.example.firstapp.adapter
|
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.TextView
|
import androidx.recyclerview.widget.RecyclerView
|
import com.example.firstapp.R
|
import com.example.firstapp.database.entity.Code
|
import androidx.recyclerview.widget.ListAdapter
|
|
|
class MyAdapter : ListAdapter<Code, MyAdapter.ViewHolder>(CodeDiffCallback()) {
|
|
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
val tvTitle: TextView = view.findViewById(R.id.tvTitle)
|
val tvDescription: TextView = view.findViewById(R.id.tvDescription)
|
val overTimeMsg: TextView = view.findViewById(R.id.overTimeMsg)
|
}
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
val view = LayoutInflater.from(parent.context)
|
.inflate(R.layout.item_layout, parent, false)
|
return ViewHolder(view)
|
}
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
val item = getItem(position) // 使用 getItem 来获取当前位置的 item
|
holder.tvTitle.text = item.type // 假设 Code 类有一个 `type` 属性
|
holder.tvDescription.text = item.code // 假设 Code 类有一个 `code` 属性
|
var overtime = "请注意:当前取件免费截止时间是"+item.overtime+",超时会收取额外费用"
|
holder.overTimeMsg.text = overtime
|
println("打印......")
|
}
|
|
// 使用 DiffUtil 来优化列表更新
|
class CodeDiffCallback : androidx.recyclerview.widget.DiffUtil.ItemCallback<Code>() {
|
override fun areItemsTheSame(oldItem: Code, newItem: Code): Boolean {
|
return oldItem.id == newItem.id // 假设 Code 类有唯一的 id 字段
|
}
|
|
override fun areContentsTheSame(oldItem: Code, newItem: Code): Boolean {
|
return oldItem == newItem // 如果内容相同,返回 true
|
}
|
}
|
}
|