关联用户

This commit is contained in:
2026-05-10 11:10:39 +08:00
parent 3df00ad493
commit 2c94ba767d
13 changed files with 584 additions and 9 deletions

View File

@@ -0,0 +1,73 @@
package com.example.defenseapplication.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.defenseapplication.databinding.ItemLinkedUserBinding
data class LinkedUser(
val name: String,
val phone: String,
val idCard: String,
val time: String
)
class LinkedUserAdapter(
private val onItemClick: (LinkedUser, Int) -> Unit,
private val onDeleteClick: (LinkedUser, Int) -> Unit
) : RecyclerView.Adapter<LinkedUserAdapter.LinkedUserViewHolder>() {
private val items = mutableListOf<LinkedUser>()
fun submitList(userList: List<LinkedUser>) {
items.clear()
items.addAll(userList)
notifyDataSetChanged()
}
fun removeItem(position: Int) {
if (position in items.indices) {
items.removeAt(position)
notifyItemRemoved(position)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LinkedUserViewHolder {
val binding = ItemLinkedUserBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
return LinkedUserViewHolder(binding)
}
override fun onBindViewHolder(holder: LinkedUserViewHolder, position: Int) {
holder.bind(items[position], position)
}
override fun getItemCount(): Int = items.size
inner class LinkedUserViewHolder(
private val binding: ItemLinkedUserBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: LinkedUser, position: Int) {
binding.llContent.translationX = 0f
binding.tvUserName.text = item.name
binding.tvPhone.text = "手机号码:${item.phone}"
binding.tvIdCard.text = "身份证号:${item.idCard}"
binding.tvTime.text = item.time
binding.llContent.setOnClickListener {
onItemClick(item, position)
}
binding.llDelete.setOnClickListener {
onDeleteClick(item, position)
}
}
fun getContentLayout(): View = binding.llContent
}
}