cloudroam
7 天以前 0cf0870889d65f5d11d0b2c8af7bca9442a7ba19
app/src/main/java/com/example/firstapp/activity/PickupActivity.kt
@@ -5,7 +5,8 @@
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.firstapp.adapter.ExpressPackageAdapter
import com.example.firstapp.R
import com.example.firstapp.adapter.PickupPackageAdapter
import com.example.firstapp.core.Core
import com.example.firstapp.databinding.ActivityPickupBinding
import com.example.firstapp.model.ExpressPackage
@@ -13,12 +14,31 @@
class PickupActivity : AppCompatActivity() {
    private lateinit var binding: ActivityPickupBinding
    private lateinit var expressAdapter: ExpressPackageAdapter
    private lateinit var expressAdapter: PickupPackageAdapter
    private var stationIconResId = R.drawable.location // 默认图标
    // 添加类型常量
    companion object {
        const val TYPE_EXPRESS = "express"
        const val TYPE_REPAYMENT = "repayment"
        const val TYPE_INCOME = "income"
        const val TYPE_TRAIN = "train"
        const val TYPE_FLIGHT = "flight"
    }
    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
        stationIconResId = intent.getIntExtra("station_icon_res_id", R.drawable.location)
        initViews()
        loadData()
@@ -26,10 +46,10 @@
    private fun initViews() {
        // 初始化适配器,传入取件回调
        expressAdapter = ExpressPackageAdapter { pack ->
        expressAdapter = PickupPackageAdapter { pack ->
            handleSinglePickup(pack)
        }
        binding.rvPackages.apply {
            layoutManager = LinearLayoutManager(this@PickupActivity)
            adapter = expressAdapter
@@ -39,17 +59,43 @@
            finish()
        }
        // 修改底部按钮点击事件
        binding.btnPickupAll.setOnClickListener {
            showPickupConfirmDialog()
        // 设置底部按钮文本并添加点击事件
        binding.btnPickupAll.apply {
            text = getButtonText()
            setOnClickListener {
                showPickupConfirmDialog()
            }
        }
        // 设置驿站图标
        binding.ivBack.setImageResource(stationIconResId)
    }
    private fun getConfirmMessage(): String {
        return when (pageType) {
            TYPE_EXPRESS -> "是否确认取出所有包裹?"
            TYPE_REPAYMENT -> "是否确认处理所有还款?"
            TYPE_INCOME -> "是否确认处理所有收入?"
            TYPE_TRAIN -> "是否确认处理所有火车票?"
            TYPE_FLIGHT -> "是否确认处理所有机票?"
            else -> "是否确认处理所有项目?"
        }
    }
    private fun getButtonText(): String {
        return when (pageType) {
            TYPE_EXPRESS -> "全部取件"
            TYPE_REPAYMENT -> "全部还款"
            TYPE_INCOME -> "全部收款"
            TYPE_TRAIN -> "全部处理票务"
            TYPE_FLIGHT -> "全部处理机票"
            else -> "全部处理"
        }
    }
    private fun showPickupConfirmDialog() {
        AlertDialog.Builder(this)
            .setTitle("确认取件")
            .setMessage("是否确认取出所有包裹?")
            .setTitle(getButtonText())
            .setMessage(getConfirmMessage())
            .setPositiveButton("确认") { _, _ ->
                handlePickupAll()
            }
@@ -84,7 +130,7 @@
                // 清空列表
                expressAdapter.submitList(emptyList())
                // 更新包裹数量显示
                binding.tvPackageCount.text = "共0个包裹"
                binding.tvPackageCount.text = getCountText(0)
                // 通知MainActivity刷新
                setResult(RESULT_OK)
            } catch (e: Exception) {
@@ -95,10 +141,21 @@
        }
    }
    private fun getCountText(count: Int): String {
        return when (pageType) {
            TYPE_EXPRESS -> "共${count}个包裹"
            TYPE_REPAYMENT -> "共${count}笔还款"
            TYPE_INCOME -> "共${count}笔收入"
            TYPE_TRAIN -> "共${count}张车票"
            TYPE_FLIGHT -> "共${count}张机票"
            else -> "共${count}个"
        }
    }
    private fun loadData() {
        val stationName = intent.getStringExtra("station_name") ?: ""
        val company = intent.getStringExtra("company") ?: ""
        lifecycleScope.launch {
            val codes = Core.code.getByKeyword(stationName)
            val packages = codes.map { code ->
@@ -109,10 +166,13 @@
                    createTime = code.createTime
                )
            }
            expressAdapter.submitList(packages)
            binding.tvStationName.text = stationName
            binding.tvPackageCount.text = "共${packages.size}个包裹"
            binding.tvPackageCount.text = getCountText(packages.size)
            // 根据PageType设置适配器的CompanyLogo处理逻辑
            expressAdapter.setPageType(pageType)
        }
    }
}
}