18034727885
2026-05-14 dad2ded3e9e9d2edf55c7ce10e791588b526961f
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
package com.example.smart.ui.options.device.adapter
 
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import com.example.smart.R
import com.example.smart.enumlist.PropertyItemType
import com.example.smart.ui.options.device.bean.DeviceUsageBean
import com.example.smart.widget.common.CommonInputWidget
import com.example.smart.widget.common.ICommonDataEvent
 
/**
 * @data: 2023/10/28 13:33
 * @description:
 */
class DeviceUsageAdapter(
    private val mContext: Context,
    val data: ArrayList<DeviceUsageBean.DeviceSingleInfo>
) :
    RecyclerView.Adapter<DeviceUsageAdapter.PageViewHolder>() {
 
 
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PageViewHolder {
        return PageViewHolder(
            LayoutInflater.from(mContext).inflate(R.layout.item_device_view, parent, false)
        )
    }
 
    override fun getItemCount() = data.size
    override fun onBindViewHolder(holder: PageViewHolder, position: Int) {
        val bean = data[position]
        if (bean.isTitle) {
            holder.nameTv.isVisible = true
            holder.widget.isVisible = false
            holder.line.isVisible = false
            holder.nameTv.text = bean.name
        } else {
            holder.nameTv.isVisible = false
            holder.line.isVisible = true
            holder.widget.isVisible = true
 
            val isEdit = PropertyItemType.STRING == bean.type || PropertyItemType.INT == bean.type
 
            holder.widget.setOperation(bean.isRequired, isEdit, !isEdit)
            holder.widget.bindDeviceUsageInfo(bean, isEdit)
        }
    }
 
 
    inner class PageViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
 
        val nameTv: TextView
        val widget: CommonInputWidget
        val line: View
 
        init {
            nameTv = itemView.findViewById(R.id.title_tv)
            widget = itemView.findViewById(R.id.common_widget)
            line = itemView.findViewById(R.id.line)
        }
    }
 
}