From 1a281d8354622a3606360f9f9a7fe4bb7d6a2c3a Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期日, 27 四月 2025 13:22:26 +0800 Subject: [PATCH] fix 短信 --- app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt | 90 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 86 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt index 856ba45..fd341a8 100644 --- a/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt +++ b/app/src/main/java/com/example/firstapp/adapter/IncomeAdapter.kt @@ -6,6 +6,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView +import com.example.firstapp.R import com.example.firstapp.databinding.ItemIncomeGroupBinding import com.example.firstapp.databinding.ItemIncomePackageHomeBinding import com.example.firstapp.model.IncomeGroup @@ -42,8 +43,23 @@ init { binding.rvPackages.apply { - layoutManager = LinearLayoutManager(context) + layoutManager = object : LinearLayoutManager(context) { + override fun canScrollVertically(): Boolean { + return false + } + + override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) { + try { + super.onLayoutChildren(recycler, state) + } catch (e: IndexOutOfBoundsException) { + // 捕获可能的异常,防止崩溃 + } + } + } adapter = packagesAdapter + isNestedScrollingEnabled = false + setItemViewCacheSize(20) + setHasFixedSize(true) } } @@ -51,7 +67,39 @@ 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_income_bank_normal + stationName.contains("工商银行") -> R.drawable.bank_gongshang + stationName.contains("光大银行") -> R.drawable.bank_guangda + stationName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa + stationName.contains("恒丰银行") -> R.drawable.bank_hengfeng + stationName.contains("华夏银行") -> R.drawable.bank_huaxia + stationName.contains("花呗分期") -> R.drawable.bank_huabeifenqi + stationName.contains("建设银行") -> R.drawable.bank_jianshe + stationName.contains("交通银行") -> R.drawable.bank_jiaotong + stationName.contains("民生银行") -> R.drawable.bank_mingsheng + stationName.contains("南京银行") -> R.drawable.bank_nanjing + stationName.contains("农商银行") -> R.drawable.bank_nongshang + stationName.contains("农业银行") -> R.drawable.bank_nongye + stationName.contains("平安银行") -> R.drawable.bank_pingan + stationName.contains("浦发银行") -> R.drawable.bank_pufa + stationName.contains("苏州银行") -> R.drawable.bank_suzhou + stationName.contains("邮储银行") -> R.drawable.bank_youzheng + stationName.contains("招商银行") -> R.drawable.bank_zhaoshang + stationName.contains("中国银行") -> R.drawable.bank_zhongguo + stationName.contains("中信银行") -> R.drawable.bank_zhongxin + stationName.contains("中原银行") -> R.drawable.bank_zhongyuan + else -> R.drawable.finance_income_bank_normal + } + + binding.ivStationIcon.setImageResource(stationIconResId) + + packagesAdapter.submitList(null) packagesAdapter.submitList(group.packages) + + binding.rvPackages.requestLayout() } } } @@ -71,13 +119,20 @@ holder.bind(pack) } + override fun getItemCount(): Int { + return currentList.size + } + inner class ViewHolder(private val binding: ItemIncomePackageHomeBinding) : RecyclerView.ViewHolder(binding.root) { init { binding.root.setOnClickListener { - val pack = getItem(adapterPosition) - onPackageClick(pack) + val position = adapterPosition + if (position != RecyclerView.NO_POSITION) { + val pack = getItem(position) + onPackageClick(pack) + } } } @@ -85,6 +140,33 @@ 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) // binding.tvBalance.text = "余额: ¥${pack.balance}" } } @@ -108,4 +190,4 @@ override fun areContentsTheSame(oldItem: IncomePackage, newItem: IncomePackage): Boolean { return oldItem == newItem } -} \ No newline at end of file +} \ No newline at end of file -- Gitblit v1.9.3