在Android Kotlin MVVM架构中,可以在RecyclerView的适配器中调用ViewModel。以下是一种解决方法的示例:
class MyAdapter(private val viewModel: MyViewModel) : RecyclerView.Adapter() {
// ...
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bindData(data: MyDataModel) {
itemView.setOnClickListener {
// 在这里可以调用ViewModel的方法
viewModel.doSomethingWithData(data)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val data = dataList[position]
holder.bindData(data)
}
通过这种方式,我们可以在RecyclerView的适配器中调用ViewModel的方法,并将数据传递给ViewModel进行处理。请注意,需要在适配器的构造函数中传递ViewModel实例,以便在适配器中访问ViewModel。