From 88b00f3fc74446a1727c93722c7b64179b45a9db Mon Sep 17 00:00:00 2001 From: zhujie <leon.zhu@cloudroam.com.cn> Date: 星期五, 18 四月 2025 17:40:45 +0800 Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/FirstApp2 --- 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