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)
|
}
|
}
|
|
}
|