18034727885
2026-04-27 3a4c1bbb2cf4fb1cdda8a5061b0674f30e7456b4
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
66
67
68
69
package com.example.smart.ui.project.equiplist
 
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView.Adapter
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.example.basecore.util.startAct
import com.example.smart.R
import com.example.smart.ui.project.bean.TaskDetailInfo
import com.example.smart.ui.project.equiplist.bean.EquipmentBean
import com.example.smart.ui.project.equiplist.check.CheckDeviceActivity
 
/**
 * 设备清单
 */
class DeviceListAdapter(private val mContext: Context,
                        val data: ArrayList<EquipmentBean>,
                        val taskInfo:TaskDetailInfo,
                        val onDismissAction: () -> Unit = {}) :
    Adapter<DeviceListAdapter.PageViewHolder>() {
 
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PageViewHolder {
        return PageViewHolder(
            LayoutInflater.from(mContext).inflate(R.layout.item_equipment_list_view, parent, false)
        )
    }
 
    override fun getItemCount() = data.size
    override fun onBindViewHolder(holder: PageViewHolder, position: Int) {
        val bean = data[position]
 
        holder.itemView.setOnClickListener {
            val pop = EquipmentPopupWindow(mContext, bean, taskInfo, onDismissAction = {
                onDismissAction()
            })
            pop.showPopupWindow()
        }
        holder.nameTv.text = bean.deviceType.desc
        // 显示设备编号(info),如果没有则显示出厂编号(name)
        holder.contentTv.text = bean.device?.info?.toString() ?: ""
 
        holder.stateTv.text = bean.properties["工程起重机设备状态"]
    }
 
    fun notifyData(dataList: List<EquipmentBean>) {
        data.clear()
        data.addAll(dataList)
        notifyDataSetChanged()
    }
 
 
    inner class PageViewHolder(itemView: View) : ViewHolder(itemView) {
 
        val nameTv: TextView
        val stateTv: TextView
        val contentTv: TextView
 
        init {
            nameTv = itemView.findViewById(R.id.name_tv)
            stateTv = itemView.findViewById(R.id.status_tv)
            contentTv = itemView.findViewById(R.id.content_tv)
        }
    }
 
 
}