From e103a70d2ac198ebbd7493eb657e2cd23089d028 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 18 四月 2025 15:43:46 +0800
Subject: [PATCH] fix : 列表图标
---
app/src/main/java/com/example/firstapp/adapter/FinanceAdapter.kt | 202 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 139 insertions(+), 63 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/adapter/FinanceAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/FinanceAdapter.kt
index 16bbf8d..3165790 100644
--- a/app/src/main/java/com/example/firstapp/adapter/FinanceAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/FinanceAdapter.kt
@@ -53,7 +53,7 @@
// 禁用内部RecyclerView的垂直滚动
return false
}
-
+
// 确保测量所有子项,防止部分内容不可见
override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) {
try {
@@ -76,11 +76,31 @@
currentGroup = group
binding.tvStationName.text = group.stationName
binding.tvPackageCount.text = "共${group.packages.size}笔账单"
-
+
+ // 根据驿站名称设置相应的图标
+ val stationName = group.stationName.lowercase()
+ val stationIconResId = when {
+ stationName.isEmpty() || stationName == "未知" -> R.drawable.finance_huankuan_normal
+ stationName.contains("安逸花") -> R.drawable.finance_anyihua
+ stationName.contains("房贷") -> R.drawable.finance_fangdai
+ stationName.contains("还款") -> R.drawable.finance_huankuan
+ stationName.contains("花呗") -> R.drawable.finance_huabei
+ stationName.contains("借呗") -> R.drawable.finance_jiebei
+ stationName.contains("京东白条") -> R.drawable.finance_jingdongbaitiao
+ stationName.contains("京东金条") -> R.drawable.finance_jingdongjintiao
+ stationName.contains("汽车分期") -> R.drawable.finance_qichefenqi
+ stationName.contains("省呗") -> R.drawable.finance_shenbei
+ stationName.contains("信用卡") -> R.drawable.finance_xingyongka
+ stationName.contains("支付宝") -> R.drawable.finance_zhifubao
+ else -> R.drawable.finance_huankuan_normal
+ }
+
+ binding.ivStationIcon.setImageResource(stationIconResId)
+
// 确保所有数据都被更新
packagesAdapter.submitList(null)
packagesAdapter.submitList(group.packages)
-
+
// 请求布局刷新
binding.rvPackages.requestLayout()
}
@@ -107,7 +127,7 @@
val pack = getItem(position)
holder.bind(pack)
}
-
+
// 防止部分内容不显示
override fun getItemCount(): Int {
return currentList.size
@@ -130,70 +150,126 @@
binding.tvCompany.text = pack.company
binding.tvCreateTime.text = pack.createTime
binding.tvTrackingNumber.text = pack.trackingNumber
+ val companyName = pack.company.lowercase()
+ val logoResId = when {
+ companyName.isEmpty() || companyName == "未知" -> R.drawable.finance_income_bank_normal
+ companyName.contains("工商银行") -> R.drawable.bank_gongshang
+ companyName.contains("光大银行") -> R.drawable.bank_guangda
+ companyName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa
+ companyName.contains("恒丰银行") -> R.drawable.bank_hengfeng
+ companyName.contains("华夏银行") -> R.drawable.bank_huaxia
+ companyName.contains("花呗分期") -> R.drawable.bank_huabeifenqi
+ companyName.contains("建设银行") -> R.drawable.bank_jianshe
+ companyName.contains("交通银行") -> R.drawable.bank_jiaotong
+ companyName.contains("民生银行") -> R.drawable.bank_mingsheng
+ companyName.contains("南京银行") -> R.drawable.bank_nanjing
+ companyName.contains("农商银行") -> R.drawable.bank_nongshang
+ companyName.contains("农业银行") -> R.drawable.bank_nongye
+ companyName.contains("平安银行") -> R.drawable.bank_pingan
+ companyName.contains("浦发银行") -> R.drawable.bank_pufa
+ companyName.contains("苏州银行") -> R.drawable.bank_suzhou
+ companyName.contains("邮储银行") -> R.drawable.bank_youzheng
+ companyName.contains("招商银行") -> R.drawable.bank_zhaoshang
+ companyName.contains("中国银行") -> R.drawable.bank_zhongguo
+ companyName.contains("中信银行") -> R.drawable.bank_zhongxin
+ companyName.contains("中原银行") -> R.drawable.bank_zhongyuan
+ companyName.contains("支付宝") -> R.drawable.finance_zhifubao
+ else -> R.drawable.finance_income_bank_normal
+ }
+ binding.ivCompanyLogo.setImageResource(logoResId)
}
}
}
// 取件页面使用的包裹适配器
-class FinancePackageAdapter(private val onPackagePickup: (FinancePackage) -> Unit = { _ -> }) :
- ListAdapter<FinancePackage, FinancePackageAdapter.ViewHolder>(FinancePackageDiffCallback()) {
-
- private var onPackageClickListener: (FinancePackage) -> Unit = {}
- private var stationName: String = ""
-
- fun setStationInfo(station: String) {
- stationName = station
- }
-
- fun setOnPackageClickListener(listener: (FinancePackage) -> Unit) {
- onPackageClickListener = listener
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- val binding = ItemFinanceBinding.inflate(
- LayoutInflater.from(parent.context), parent, false
- )
- return ViewHolder(binding)
- }
-
- override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- val pack = getItem(position)
- holder.bind(pack)
- }
-
- // 防止部分内容不显示
- override fun getItemCount(): Int {
- return currentList.size
- }
-
- inner class ViewHolder(private val binding: ItemFinanceBinding) :
- RecyclerView.ViewHolder(binding.root) {
-
- init {
- binding.ivPackageStatus.setOnClickListener {
- val position = adapterPosition
- if (position != RecyclerView.NO_POSITION) {
- val pack = getItem(position)
- onPackagePickup(pack)
- }
- }
-
- binding.root.setOnClickListener(null)
- }
-
- fun bind(pack: FinancePackage) {
- binding.tvPackageId.text = pack.id.toString()
- binding.tvCompany.text = pack.company
- binding.tvCreateTime.text = pack.createTime
- binding.tvTrackingNumber.text = pack.trackingNumber
- binding.ivPackageStatus.setImageResource(
-// if (pack.isPickedUp) R.drawable.circle_checked
-// else R.drawable.circle
- R.drawable.circle
- )
- }
- }
-}
+//class FinancePackageAdapter(private val onPackagePickup: (FinancePackage) -> Unit = { _ -> }) :
+// ListAdapter<FinancePackage, FinancePackageAdapter.ViewHolder>(FinancePackageDiffCallback()) {
+//
+// private var onPackageClickListener: (FinancePackage) -> Unit = {}
+// private var stationName: String = ""
+//
+// fun setStationInfo(station: String) {
+// stationName = station
+// }
+//
+// fun setOnPackageClickListener(listener: (FinancePackage) -> Unit) {
+// onPackageClickListener = listener
+// }
+//
+// override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+// val binding = ItemFinanceBinding.inflate(
+// LayoutInflater.from(parent.context), parent, false
+// )
+// return ViewHolder(binding)
+// }
+//
+// override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+// val pack = getItem(position)
+// holder.bind(pack)
+// }
+//
+// // 防止部分内容不显示
+// override fun getItemCount(): Int {
+// return currentList.size
+// }
+//
+// inner class ViewHolder(private val binding: ItemFinanceBinding) :
+// RecyclerView.ViewHolder(binding.root) {
+//
+// init {
+// binding.ivPackageStatus.setOnClickListener {
+// val position = adapterPosition
+// if (position != RecyclerView.NO_POSITION) {
+// val pack = getItem(position)
+// onPackagePickup(pack)
+// }
+// }
+//
+// binding.root.setOnClickListener(null)
+// }
+//
+// fun bind(pack: FinancePackage) {
+// binding.tvPackageId.text = pack.id.toString()
+// binding.tvCompany.text = pack.company
+// binding.tvCreateTime.text = pack.createTime
+// binding.tvTrackingNumber.text = pack.trackingNumber
+// binding.ivPackageStatus.setImageResource(
+//// if (pack.isPickedUp) R.drawable.circle_checked
+//// else R.drawable.circle
+// R.drawable.circle
+// )
+// // 根据快递公司名称设置相应的图标
+// val companyName = pack.company.lowercase()
+// val logoResId = when {
+// companyName.isEmpty() || companyName == "未知" -> R.drawable.finance_income_bank_normal
+// companyName.contains("工商银行") -> R.drawable.bank_gongshang
+// companyName.contains("光大银行") -> R.drawable.bank_guangda
+// companyName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa
+// companyName.contains("恒丰银行") -> R.drawable.bank_hengfeng
+// companyName.contains("华夏银行") -> R.drawable.bank_huaxia
+// companyName.contains("花呗分期") -> R.drawable.bank_huabeifenqi
+// companyName.contains("建设银行") -> R.drawable.bank_jianshe
+// companyName.contains("交通银行") -> R.drawable.bank_jiaotong
+// companyName.contains("民生银行") -> R.drawable.bank_mingsheng
+// companyName.contains("南京银行") -> R.drawable.bank_nanjing
+// companyName.contains("农商银行") -> R.drawable.bank_nongshang
+// companyName.contains("农业银行") -> R.drawable.bank_nongye
+// companyName.contains("平安银行") -> R.drawable.bank_pingan
+// companyName.contains("浦发银行") -> R.drawable.bank_pufa
+// companyName.contains("苏州银行") -> R.drawable.bank_suzhou
+// companyName.contains("邮储银行") -> R.drawable.bank_youzheng
+// companyName.contains("招商银行") -> R.drawable.bank_zhaoshang
+// companyName.contains("中国银行") -> R.drawable.bank_zhongguo
+// companyName.contains("中信银行") -> R.drawable.bank_zhongxin
+// companyName.contains("中原银行") -> R.drawable.bank_zhongyuan
+// else -> R.drawable.finance_income_bank_normal
+// }
+//
+// binding.ivCompanyLogo.setImageResource(logoResId)
+//
+// }
+// }
+//}
private class FinanceGroupDiffCallback : DiffUtil.ItemCallback<FinanceGroup>() {
--
Gitblit v1.9.3