lmw
2023-05-12 f67802a41f9e01444d1115f34ecc6e1beb05fc3b
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
59
60
61
62
63
64
65
package com.fuban.user.ui.mine.adapter
 
import android.view.View
import android.widget.TextView
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.fuban.user.R
import com.fuban.user.network.entity.Order
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.textColorResource
import java.util.ArrayList
 
class LogisticsAdapter(datas: ArrayList<Order>,private val callback:ClickCallback) : HFRecyclerAdapter<Order>(datas, R.layout.item_logistics_order) {
    override fun onBind(holder: ViewHolder, position: Int, data: Order) {
        val pay = holder.bind<TextView>(R.id.tv_pay)
        val cancel = holder.bind<TextView>(R.id.tv_cancel)
        val line = holder.bind<View>(R.id.line)
        holder.setText(R.id.tv_time,data.orderTime)
        holder.setText(R.id.tv_start,data.startAddress)
        holder.setText(R.id.tv_goods_typ,data.cargoType)
        holder.setText(R.id.tv_trip_time,data.time)
        holder.setText(R.id.tv_state,data.getLogisticsState())
        holder.bind<TextView>(R.id.tv_state).textColorResource = if (data.state == 10) R.color.textColor66 else R.color.colorPrimary
        cancel.onClick {
            callback.onCancel(position)
        }
        when(data.state){
            7->{
                pay.visible()
                pay.text = "立即支付(¥%.2f)".format(data.orderMoney)
                cancel.visible()
                line.visible()
                pay.onClick {
                    callback.onPay(position)
                }
            }
            8->{
                pay.visible()
                pay.text = "支付差价(¥%.2f)".format(data.differenceMoney)
                cancel.visible()
                line.visible()
                pay.onClick {
                    callback.onPay(position)
                }
            }
            in (1..4),11->{
                pay.gone()
                cancel.visible()
                line.visible()
            }
            else->{
                pay.gone()
                cancel.gone()
                line.gone()
            }
        }
    }
 
    interface ClickCallback{
        fun onPay(index:Int)
        fun onCancel(index:Int)
    }
}