代码之家  ›  专栏  ›  技术社区  ›  Jack Guo

recyclerview click listener,为什么不经常使用这种更简单的方法

  •  0
  • Jack Guo  · 技术社区  · 7 年前

    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 -> ...
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Anand Jain    7 年前

    你的方法没什么问题,很多人都用它。通常第一种方法使用的时间最多,因为使用接口调用方法是很好的实践。当我们使用某些架构(如mvp、mvvm或任何其他架构)创建项目时,我们需要使用接口调用所有方法。目前在你的项目中,你只需要开始一个活动,但很多时候,我们要执行更长和困难的任务,以便更好地执行相关活动。通过我们可以在同一个地方收集所有的方法。