puzhibing
2026-08-21 5fa94b3718b4a78a4fcea4c97652b0ef20b7de3a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.xw.yunwei.ui.work.car.manage
 
import android.annotation.SuppressLint
import androidx.databinding.DataBindingUtil
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.xw.common.base.OnItemClickListener
import com.xw.common.utils.BindUtils.getResColor
import com.xw.common.viewAdapter.ImageDefault
import com.xw.common.viewAdapter.ViewAdapter
import com.xw.yunwei.R
import com.xw.yunwei.databinding.ItemWorkManageCarBinding
import com.xw.yunwei.extension.colorIdToColorValue
import com.xw.yunwei.model.CarModel
 
class CarAdapter(var listener: OnItemClickListener<CarModel>) :
    BaseQuickAdapter<CarModel, BaseViewHolder>(R.layout.item_work_manage_car) {
 
    var selectItem: CarModel? = null
        set(value) {
            data.indexOf(field).takeIf { it != -1 }?.also { notifyItemChanged(it) }
            field = value
            data.indexOf(field).takeIf { it != -1 }?.also { notifyItemChanged(it) }
        }
 
    @SuppressLint("SetTextI18n")
    override fun convert(holder: BaseViewHolder, item: CarModel) {
        val binding: ItemWorkManageCarBinding? = DataBindingUtil.bind(holder.itemView)
        binding?.let {
            it.root.setOnClickListener {
                listener.onItemClick(item)
            }
            if (item == selectItem) {
                it.parent.setBackgroundColor(getResColor(com.xw.common.R.color.gray_3))
            } else {
                it.parent.setBackgroundColor(getResColor(com.xw.common.R.color.white))
            }
 
            ViewAdapter.loadImage(
                binding.icon,
                ImageDefault(item.getShowVehiclePicture(), R.mipmap.img_work_car)
            )
            binding.name.text = item.plateNumber
            binding.color.text = item.vehicleColor
            binding.batteryLife.text = "${item.mileageRange?.toInt()}km"
            binding.batteryLife.setTextColor(
                com.xw.common.custom.BatteryView.getBatteryColor(
                    item.currentElectricity ?: 0
                )
            )
            binding.batteryView.setLevel(item.currentElectricity ?: 0)
            binding.status.setBackgroundResource(item.getShowStatusBgResource())
            binding.status.setTextColor(item.getShowStatusTextColor().colorIdToColorValue(it.root.context))
            binding.status.text=item.getShowStatus()
        }
    }
 
}