From e6e85c6fc87ba0688dae074a6aeda58f24ea05e9 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 02 四月 2025 10:02:57 +0800
Subject: [PATCH] feat(generallibrary): 添加卡片列表适配器和搜索结果 Bean
---
generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt | 69 ++++++++++++++++++++++++++++++++--
1 files changed, 64 insertions(+), 5 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt b/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
index debb5f1..d63f6ac 100644
--- a/generallibrary/src/main/java/com/dayu/general/adapter/SearchListAdapter.kt
+++ b/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 ?: "鏃�"
}
}
}
--
Gitblit v1.8.0