首页 > 解决方案 > 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 -> ...
        }
    }

标签: androidandroid-intentandroid-recyclerviewkotlin

解决方案


你的方法没有错,很多人都在使用它。通常大部分时间都使用第一种方法,因为使用接口调用方法是一种很好的做法。当我们使用某些架构(如 MVP 或 MVVM 或任何其他架构)创建项目时,我们需要使用接口调用所有方法。目前在您的项目中,您只需要开始一项活动,但很多时候我们要执行更长且困难的任务,因此最好在相关活动中执行。通过我们可以在同一个地方收集所有方法。


推荐阅读