android - RecyclerView点击监听,为什么这种更简单的方式不经常使用
问题描述
这里是 Android 开发的新手。我正在创建一个RecyclerView
在单击某些项目时呈现新活动的项目。我在网上搜索,他们都会定义一个点击监听器接口,将监听器传递给视图持有者,并最终startActivity
从主活动中调用。
或者,我想出了以下内容。由于没有人使用这种方法,它有什么问题?它只是适配器类中的几行代码,并且似乎同样运行良好
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder) {
is certainViewHolder -> {
holder.itemView.setOnClickListener {
val intent = Intent(holder.itemView.context, DetailedActivity::class.java)
holder.itemView.context.startActivity(intent)
}
}
else -> ...
}
}
解决方案
你的方法没有错,很多人都在使用它。通常大部分时间都使用第一种方法,因为使用接口调用方法是一种很好的做法。当我们使用某些架构(如 MVP 或 MVVM 或任何其他架构)创建项目时,我们需要使用接口调用所有方法。目前在您的项目中,您只需要开始一项活动,但很多时候我们要执行更长且困难的任务,因此最好在相关活动中执行。通过我们可以在同一个地方收集所有方法。
推荐阅读
- javascript - 如何正确清除和更新 textarea 元素?
- c - 从不同大小的整数转换为指针错误
- c# - 当我已经将用户的刷新令牌存储在数据库中时,使用 Microsoft.Graph SDK 的最佳方式是什么?
- php - PHP -> Json,访问嵌套数组
- python - groupby() cumsum() 4 列
- javascript - 无法分配给 React useRef 中的只读属性“当前”
- javascript - 如何将值从一个函数发送到另一个函数
- powershell - 从 TXT 或 CSV 获取主机名,存储在变量中
- java - 在 AWS S3 上上传时图像和 PDF 文件损坏
- dependency-injection - Dagger/Hilt 如果模块是抽象类或接口,它们有区别吗?