Android kotlin MVVM - 你可以在RecyclerView的适配器中调用ViewModel吗?
创始人
2024-08-14 13:00:34
0次

在Android Kotlin MVVM架构中,可以在RecyclerView的适配器中调用ViewModel。以下是一种解决方法的示例:

  1. 首先,在适配器类中定义一个ViewModel实例变量:
class MyAdapter(private val viewModel: MyViewModel) : RecyclerView.Adapter() {
    // ...
}
  1. 在适配器的ViewHolder类中,定义一个方法来绑定数据和ViewModel:
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

    fun bindData(data: MyDataModel) {
        itemView.setOnClickListener {
            // 在这里可以调用ViewModel的方法
            viewModel.doSomethingWithData(data)
        }
    }
}
  1. 在适配器的 onCreateViewHolder 方法中,实例化ViewHolder并返回:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
    return ViewHolder(view)
}
  1. 在onBindViewHolder方法中,将数据绑定到ViewHolder并调用bindData方法:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val data = dataList[position]
    holder.bindData(data)
}

通过这种方式,我们可以在RecyclerView的适配器中调用ViewModel的方法,并将数据传递给ViewModel进行处理。请注意,需要在适配器的构造函数中传递ViewModel实例,以便在适配器中访问ViewModel。

相关内容

热门资讯

黑科技透视器!微信小程序微乐房... 黑科技透视器!微信小程序微乐房间透视(透视器),微乐山东麻将真是是有透视挂脚本微信小程序微乐房间透视...
黑科技辅助器!微乐贵阳捉鸡麻将... 黑科技辅助器!微乐贵阳捉鸡麻将辅助(辅助器),微信微乐一贯是有透视挂软件;1、用户打开应用后不用登录...
黑科技透视挂!微信小程序游戏充... 黑科技透视挂!微信小程序游戏充值破解(透视挂),龙江麻将微乐一直存在有透视挂方法1、全新机制【微信小...
黑科技作弊器!微乐小程序辅助脚... 黑科技作弊器!微乐小程序辅助脚本(作弊器),微乐湖北麻将本来存在有透视挂攻略一、微乐小程序辅助脚本可...
黑科技作弊器!微信小程序微乐辅... 黑科技作弊器!微信小程序微乐辅助器免费版(作弊器),微乐红包控制尾数切实是有透视挂app1、下载好微...
黑科技外挂!微乐贵阳足鸡麻将开... 黑科技外挂!微乐贵阳足鸡麻将开挂(外挂),微乐三打一一贯真的有透视挂脚本1、该软件可以轻松地帮助玩家...
黑科技辅助!微乐游戏竞技团辅助... 黑科技辅助!微乐游戏竞技团辅助(辅助),微乐河北石家庄麻将原来是有透视挂软件运微乐游戏竞技团辅助辅助...
黑科技透视挂!广西微乐小程序控... 黑科技透视挂!广西微乐小程序控制器(透视挂),微乐长春麻将切实真的有透视挂方法1、广西微乐小程序控制...
黑科技透视挂!微乐自建房辅助多... 黑科技透视挂!微乐自建房辅助多少钱一个月(透视挂),微乐小程序真是存在有透视挂软件1、微乐自建房辅助...
黑科技作弊器!微信小程序辅助器... 黑科技作弊器!微信小程序辅助器免费版(作弊器),微乐红十竟然是有透视挂攻略1、玩家可以在微信小程序辅...