2024/4/21
adapter:
package com.example.personalwork.fragment.bottom.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.example.personalwork.data.models.DaySum
import com.example.personalwork.databinding.RowLayoutBinding
class ContactAdapter : RecyclerView.Adapter<ContactAdapter.MyViewHolder>() {
var dataList = emptyList<DaySum>()
class MyViewHolder(private val binding: RowLayoutBinding): RecyclerView.ViewHolder(binding.root) {
fun bind(daySum: DaySum){
binding.daySum = daySum
binding.executePendingBindings()
}
companion object{
fun from(parent: ViewGroup): MyViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val binding = RowLayoutBinding.inflate(layoutInflater,parent,false)
return MyViewHolder(binding)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int,): MyViewHolder {
return MyViewHolder.from(parent)
}
override fun getItemCount(): Int {
return dataList.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int){
val currentItem = dataList[position]
holder.bind(currentItem)
}
fun setData(toDoData: List<DaySum>){
val toDoDiffUtil = DaySumDiffUtil(dataList,toDoData)
val toDoDiffResult =DiffUtil.calculateDiff(toDoDiffUtil)
this.dataList = toDoData
toDoDiffResult.dispatchUpdatesTo(this)
}
}
package com.example.personalwork.fragment.bottom.adapter
import androidx.recyclerview.widget.DiffUtil
import com.example.personalwork.data.models.DaySum
class DaySumDiffUtil(
private val oldList: List<DaySum>,
private val newList: List<DaySum>
): DiffUtil.Callback() {
override fun getOldListSize(): Int {
return oldList.size
}
override fun getNewListSize(): Int {
return newList.size
}
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
return oldList[oldItemPosition] === newList[newItemPosition]
}
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
return oldList[oldItemPosition].id == newList[newItemPosition].id
&& oldList[oldItemPosition].title == newList[newItemPosition].title
&& oldList[oldItemPosition].description == newList[newItemPosition].description
&& oldList[oldItemPosition].startTime == newList[newItemPosition].startTime
&& oldList[oldItemPosition].finalTime == newList[newItemPosition].finalTime
}
}
package com.example.personalwork.fragment.bottom.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.personalwork.R
import com.example.personalwork.data.models.Records
import com.example.personalwork.databinding.RowLayoutBinding
class RecordsAdapter(var recordsList: List<Records>) : RecyclerView.Adapter<RecordsAdapter.RecordViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecordViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.row_liner_two, parent, false)
return RecordViewHolder(view)
}
override fun onBindViewHolder(holder: RecordViewHolder, position: Int) {
val record = recordsList[position]
holder.bind(record)
}
override fun getItemCount(): Int {
return recordsList.size
}
class RecordViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(record: Records) {
itemView.findViewById<TextView>(R.id.text_id).text = record.id.toString()
itemView.findViewById<TextView>(R.id.text_userid).text = record.userid.toString()
itemView.findViewById<TextView>(R.id.text_start).text = record.startTime
itemView.findViewById<TextView>(R.id.text_final).text =record.finalTime
itemView.findViewById<TextView>(R.id.text_dataRecord).text =record.dateRecord
itemView.findViewById<TextView>(R.id.text_no).text =record.no
itemView.findViewById<TextView>(R.id.text_name).text =record.name
itemView.findViewById<TextView>(R.id.text_classnum).text =record.classnum
}
}
}
package com.example.personalwork.fragment.bottom.adapter
import User
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.example.personalwork.R
import com.example.personalwork.data.models.Records
class UserAdapter(var userList:List<User>): RecyclerView.Adapter<UserAdapter.UserViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.liner_layout_one, parent, false)
return UserViewHolder(view)
}
override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
val user = userList[position]
holder.bind(user)
}
override fun getItemCount(): Int {
return userList.size
}
class UserViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(user:User) {
itemView.findViewById<TextView>(R.id.text_id).text = user.id.toString()
itemView.findViewById<TextView>(R.id.text_no).text = user.no.toString()
itemView.findViewById<TextView>(R.id.text_name).text = user.name
itemView.findViewById<TextView>(R.id.text_phone).text =user.phone
itemView.findViewById<TextView>(R.id.text_classnum).text =user.classnum
itemView.findViewById<TextView>(R.id.text_recordTime).text = user.recordTimes.toString()
}
}
}

浙公网安备 33010602011771号