左晓为主开发手持机充值管理机
zuojincheng
2025-03-31 793d4ee43f963935919f2ebf4b743e924c169e33
generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
@@ -1,6 +1,7 @@
package com.dayu.general.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.dayu.general.bean.net.SearchUserResult
@@ -14,11 +15,22 @@
class SearchListAdapter :  RecyclerView.Adapter<SearchListAdapter.UserViewHolder>(){
    private val userList = mutableListOf<SearchUserResult.UserInfo>()
    private var onItemClickListener: ((SearchUserResult.UserInfo) -> Unit)? = null
    fun setData(users: List<SearchUserResult.UserInfo>) {
        userList.clear()
        userList.addAll(users)
        notifyDataSetChanged()
    }
    fun addData(users: List<SearchUserResult.UserInfo>) {
        val startPosition = userList.size
        userList.addAll(users)
        notifyItemRangeInserted(startPosition, users.size)
    }
    fun setOnItemClickListener(listener: (SearchUserResult.UserInfo) -> Unit) {
        this.onItemClickListener = listener
    }
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
@@ -35,14 +47,61 @@
    inner class UserViewHolder(private val binding: ItemUserListBinding) : RecyclerView.ViewHolder(binding.root) {
        fun bind(user: SearchUserResult.UserInfo) {
            // 设置数据显示,添加判空处理
            binding.tvCardCount.text = "卡数量:${user.cardCount ?: "0"}"
            binding.tvFarmerId.text = "客户编号:${user.clientNum ?: ""}"
            binding.tvIdCard.text = "身份证:${user.idCard ?: ""}"
            binding.tvName.text = "姓名:${user.name ?: ""}"
            binding.tvPhone.text = "电话:${user.phone ?: ""}"
            binding.tvFarmerId.text = "客户编号:${user.clientNum ?: "无"}"
            binding.tvIdCard.text = "身份证:${formatIdCard(user.idCard)}"
            binding.tvName.text = "姓名:${user.name ?: "未知"}"
            binding.tvPhone.text = "电话:${formatPhone(user.phone)}"
            // 添加地址信息显示
            user.address?.let { address ->
                if (address.isNotEmpty()) {
                    binding.tvAddress.text = "地址:$address"
                    binding.tvAddress.visibility = View.VISIBLE
                } else {
                    binding.tvAddress.visibility = View.GONE
                }
            } ?: run {
                binding.tvAddress.visibility = View.GONE
            }
            // 显示操作日期
            user.operateDt?.let { date ->
                if (date.isNotEmpty()) {
                    binding.tvOperateDate.text = "操作日期:$date"
                    binding.tvOperateDate.visibility = View.VISIBLE
                } else {
                    binding.tvOperateDate.visibility = View.GONE
                }
            } ?: run {
                binding.tvOperateDate.visibility = View.GONE
            }
            binding.root.setOnClickListener {
                // 可以在此处添加点击事件,例如查看用户详情
                onItemClickListener?.invoke(user)
            }
        }
        // 格式化身份证号,保护隐私
        private fun formatIdCard(idCard: String?): String {
            return if (!idCard.isNullOrEmpty() && idCard.length >= 18) {
                val start = idCard.substring(0, 6)
                val end = idCard.substring(idCard.length - 4)
                "$start****$end"
            } else {
                idCard ?: "无"
            }
        }
        // 格式化手机号,保护隐私
        private fun formatPhone(phone: String?): String {
            return if (!phone.isNullOrEmpty() && phone.length >= 11) {
                val start = phone.substring(0, 3)
                val end = phone.substring(phone.length - 4)
                "$start****$end"
            } else {
                phone ?: "无"
            }
        }
    }