Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RecyclerView click listener,为什么不经常使用这种更简单的方法_Android_Android Intent_Android Recyclerview_Kotlin - Fatal编程技术网

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

Android RecyclerView click listener,为什么不经常使用这种更简单的方法,android,android-intent,android-recyclerview,kotlin,Android,Android Intent,Android Recyclerview,Kotlin,这里是Android开发的新手。我正在创建一个RecyclerView,当单击某些项目时,它会显示一个新的活动。我在网上搜索,他们都会定义一个点击监听器界面,将监听器传递给视图持有者,最终从主活动调用startActivity 或者,我提出了以下建议。既然没有人使用这种方法,它有什么问题?它只是adapter类中的几行代码,并且似乎工作得同样好 override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int

这里是Android开发的新手。我正在创建一个
RecyclerView
,当单击某些项目时,它会显示一个新的活动。我在网上搜索,他们都会定义一个点击监听器界面,将监听器传递给视图持有者,最终从主活动调用
startActivity

或者,我提出了以下建议。既然没有人使用这种方法,它有什么问题?它只是adapter类中的几行代码,并且似乎工作得同样好

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或任何其他架构)创建项目时,我们需要使用接口调用所有方法。目前在您的项目中,您只需要开始一项活动,但很多时候,我们需要执行更长、更困难的任务,以便更好地执行相关活动。通过我们可以在同一个地方收集所有方法

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

那么你的问题是什么?第二种方法有什么问题?为什么没有人像这样使用它更像是一个假设性的问题:)它真的“不起作用”吗?看起来不错,我看不出有什么问题。我认为它也可以改进。由于您没有将任何数据与视图绑定,也没有将任何内容传递给活动,因此无需每次在onBindViewHolder中创建侦听器。在这种情况下,在展开布局时,只能在onCreateViewHolder中执行一次。虽然这是一个非常微妙的改进,不会产生很大的影响。您的方法看起来非常好。我相信这是因为在适配器内启动活动不是很“漂亮”。人们喜欢在活动中保留活动内容。@GennadiiSaprykin它确实有效,只是想知道人们不经常使用这种简单方法的原因。你的问题是什么?第二种方法有什么问题?为什么没有人像这样使用它更像是一个假设性的问题:)它真的“不起作用”吗?看起来不错,我看不出有什么问题。我认为它也可以改进。由于您没有将任何数据与视图绑定,也没有将任何内容传递给活动,因此无需每次在onBindViewHolder中创建侦听器。在这种情况下,在展开布局时,只能在onCreateViewHolder中执行一次。虽然这是一个非常微妙的改进,不会产生很大的影响。您的方法看起来非常好。我相信这是因为在适配器内启动活动不是很“漂亮”。人们喜欢在活动中保留活动内容。@GennadiiSaprykin它确实有效,只是想知道人们不经常使用这种简单方法的原因