在开始转入jetpack的时候分部弄一下,看一下差距
(1)、最普通版本 不用ViewBinding和DataBinding
class RecordSettingAdapter : RecyclerView.Adapter<RecordSettingAdapter.MyViewHolder>() {
private var statusBeans: MutableList<PressureRecordBean> = ArrayList()
fun setList(statusBeans: MutableList<PressureRecordBean>) {
this.statusBeans = statusBeans
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val inflate = LayoutInflater.from(parent.context)
.inflate(R.layout.pressure_record_item, parent, false)
return MyViewHolder(inflate)
}
override fun getItemCount(): Int {
return statusBeans.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
var bean: PressureRecordBean = statusBeans[position]
holder.bind(bean)
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val tireNo: TextView = itemView.findViewById(R.id.tire_no)
private val tireOld: TextView = itemView.findViewById(R.id.tire_old)
private val tireNew: TextView = itemView.findViewById(R.id.tire_new)
fun bind(bean: PressureRecordBean) {
tireNo.text = bean.tire_no
tireOld.text = bean.old_pressure
tireNew.text = bean.set_pressure
}
}
}
(2)、普通版本加入ViewBinding
class RecordSettingAdapter : RecyclerView.Adapter<RecordSettingAdapter.MyViewHolder>() {
private var statusBeans: MutableList<PressureRecordBean> = ArrayList()
fun setList(statusBeans: MutableList<PressureRecordBean>) {
this.statusBeans = statusBeans
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding =
PressureRecordItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return MyViewHolder(binding)
}
override fun getItemCount(): Int {
return statusBeans.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
var bean: PressureRecordBean = statusBeans[position]
holder.bind(bean)
}
class MyViewHolder(private var bining: PressureRecordItemBinding) :
RecyclerView.ViewHolder(bining.root) {
fun bind(bean: PressureRecordBean) {
bining.tireNo.text = bean.tire_no
bining.tireOld.text = bean.old_pressure
bining.tireNew.text = bean.set_pressure
}
}
}
(3)、普通版本加入ViewBinding后再加入DataBinding
class RecordSettingAdapter : RecyclerView.Adapter<RecordSettingAdapter.MyViewHolder>() {
private var statusBeans: MutableList<PressureRecordBean> = ArrayList()
fun setList(statusBeans: MutableList<PressureRecordBean>) {
this.statusBeans = statusBeans
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding = PressureRecordItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return MyViewHolder(binding)
}
override fun getItemCount(): Int {
return statusBeans.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
var bean: PressureRecordBean = statusBeans[position]
holder.bind(bean)
}
class MyViewHolder(private var bining: PressureRecordItemBinding) :
RecyclerView.ViewHolder(bining.root) {
fun bind(bean: PressureRecordBean) {
bining.bean=bean
}
}
}