Android:Recyclerview,Data Binding和View Model
val dataList = ObservableArrayList()
class MyAdapter(private val viewModel: MyViewModel) :
RecyclerView.Adapter() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding =
ItemLayoutBinding.inflate(LayoutInflater.from(parent.context), parent, false)
binding.viewModel = viewModel
return MyViewHolder(binding.root)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.binding.model = viewModel.dataList[position]
}
override fun getItemCount(): Int {
return viewModel.dataList.size
}
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val binding: ItemLayoutBinding = DataBindingUtil.bind(itemView)!!
}
val recyclerAdapter = MyAdapter(viewModel)
recyclerView.adapter = recyclerAdapter
viewModel.dataList.addAll(myDataList)