package com.casic.br.adapter import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.casic.br.R import com.casic.br.extensions.diffDate import com.casic.br.model.OtherDeviceModel import com.casic.br.utils.LocaleConstant /** * 汉威报警器Adapter * */ class OtherDeviceAdapter( private val context: Context, private val dataRows: MutableList<OtherDeviceModel.DataModel.RowsModel> ) : RecyclerView.Adapter<OtherDeviceAdapter.ItemViewHolder>() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { return ItemViewHolder( layoutInflater.inflate(R.layout.item_other_device_rv_g, parent, false) ) } override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { val rowsModel = dataRows[position] holder.deviceNameView.text = rowsModel.deviceName Glide.with(context) .load(LocaleConstant.HW_JT_KBZ1) .apply(RequestOptions.circleCropTransform()) .placeholder(R.mipmap.load_image_error) .into(holder.imageView) holder.deviceModelView.text = rowsModel.productCode holder.deviceUsedTimeView.text = String.format( "已使用${rowsModel.createTime.toString().diffDate(true)}天" ) holder.rootView.setOnClickListener { clickListener?.onItemClick(position) } holder.moreOperateButton.setOnClickListener { clickListener?.onButtonClick(position) } } override fun getItemCount(): Int = dataRows.size private var clickListener: OnItemClickListener? = null interface OnItemClickListener { fun onItemClick(position: Int) fun onButtonClick(position: Int) } fun setOnItemClickListener(clickListener: OnItemClickListener?) { this.clickListener = clickListener } class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val rootView: LinearLayout = itemView.findViewById(R.id.rootView) val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) val moreOperateButton: Button = itemView.findViewById(R.id.moreOperateButton) val imageView: ImageView = itemView.findViewById(R.id.imageView) val deviceModelView: TextView = itemView.findViewById(R.id.deviceModelView) val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) } }