| | |
| | | class PickupActivity : AppCompatActivity() { |
| | | private lateinit var binding: ActivityPickupBinding |
| | | private lateinit var expressAdapter: ExpressPackageAdapter |
| | | |
| | | // 添加类型常量 |
| | | companion object { |
| | | const val TYPE_EXPRESS = "express" |
| | | const val TYPE_REPAYMENT = "repayment" |
| | | const val TYPE_INCOME = "income" |
| | | } |
| | | |
| | | private var pageType = TYPE_EXPRESS |
| | | |
| | | override fun onCreate(savedInstanceState: Bundle?) { |
| | | super.onCreate(savedInstanceState) |
| | | binding = ActivityPickupBinding.inflate(layoutInflater) |
| | | setContentView(binding.root) |
| | | |
| | | // 获取页面类型 |
| | | pageType = intent.getStringExtra("page_type") ?: TYPE_EXPRESS |
| | | |
| | | initViews() |
| | | loadData() |
| | |
| | | finish() |
| | | } |
| | | |
| | | // 修改底部按钮点击事件 |
| | | binding.btnPickupAll.setOnClickListener { |
| | | showPickupConfirmDialog() |
| | | // 设置底部按钮文本并添加点击事件 |
| | | binding.btnPickupAll.apply { |
| | | text = getButtonText() |
| | | setOnClickListener { |
| | | showPickupConfirmDialog() |
| | | } |
| | | } |
| | | } |
| | | |
| | | private fun getConfirmMessage(): String { |
| | | return when (pageType) { |
| | | TYPE_EXPRESS -> "是否确认取出所有包裹?" |
| | | TYPE_REPAYMENT -> "是否确认处理所有还款?" |
| | | TYPE_INCOME -> "是否确认处理所有收入?" |
| | | else -> "是否确认处理所有项目?" |
| | | } |
| | | } |
| | | |
| | | private fun getButtonText(): String { |
| | | return when (pageType) { |
| | | TYPE_EXPRESS -> "全部取件" |
| | | TYPE_REPAYMENT -> "全部还款" |
| | | TYPE_INCOME -> "全部收款" |
| | | else -> "全部处理" |
| | | } |
| | | } |
| | | |
| | | private fun showPickupConfirmDialog() { |
| | | AlertDialog.Builder(this) |
| | | .setTitle("确认取件") |
| | | .setMessage("是否确认取出所有包裹?") |
| | | .setTitle(getButtonText()) |
| | | .setMessage(getConfirmMessage()) |
| | | .setPositiveButton("确认") { _, _ -> |
| | | handlePickupAll() |
| | | } |
| | |
| | | // 清空列表 |
| | | expressAdapter.submitList(emptyList()) |
| | | // 更新包裹数量显示 |
| | | binding.tvPackageCount.text = "共0个包裹" |
| | | binding.tvPackageCount.text = getCountText(0) |
| | | // 通知MainActivity刷新 |
| | | setResult(RESULT_OK) |
| | | } catch (e: Exception) { |
| | |
| | | // 如果出错则重新加载数据 |
| | | loadData() |
| | | } |
| | | } |
| | | } |
| | | |
| | | private fun getCountText(count: Int): String { |
| | | return when (pageType) { |
| | | TYPE_EXPRESS -> "共${count}个包裹" |
| | | TYPE_REPAYMENT -> "共${count}笔还款" |
| | | TYPE_INCOME -> "共${count}笔收入" |
| | | else -> "共${count}个" |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | expressAdapter.submitList(packages) |
| | | binding.tvStationName.text = stationName |
| | | binding.tvPackageCount.text = "共${packages.size}个包裹" |
| | | binding.tvPackageCount.text = getCountText(packages.size) |
| | | } |
| | | } |
| | | } |