【问题标题】:Android Kotlin New intent on click event from recycler viewAndroid Kotlin 来自回收站视图的点击事件的新意图
【发布时间】:2019-11-23 22:22:24
【问题描述】:

我刚刚开始学习使用 Kotlin 进行 Android 开发。

我有一个列出项目的回收站视图。

我正在尝试为项目创建 onClick 事件,然后开始一个新的意图并传递项目 ID。

尝试实例化 Intent 时出现错误“以下函数均不能使用提供的参数调用”。我认为是因为我无法访问视图的上下文?

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    holder.id = events[position][0]
    holder.title.text = events[position][1]

    if (events[position][2] == events[position][3]) {
        holder.date.text = events[position][2]
    } else {
        holder.date.text = events[position][2] + " - " + events[position][3]
    }

    holder.itemView.setOnClickListener {
        v: View -> Unit


        Log.d(TAG, "onItemClick for ID: " + holder.id)

        val intent = Intent(this, EventDetail::class.java)
        intent.putExtra("id", holder.id)
        startActivity(intent)
    }
}

【问题讨论】:

  • 也许可以试试 val intent = Intent(this@YourActivity,EventDetail::class.java)

标签: android kotlin android-recyclerview android-adapter


【解决方案1】:

您需要一个 context 来表示意图,以便您可以从与此 adapter 相关联的 activityfragment 中获取它,并将其传递给您的意图,或者您可以从膨胀的任何视图中获取它这样的布局

val context=holder.title.context
val intent = Intent( context, EventDetail::class.java)
context.startActivity(intent)

或者你可以让你的activityfragment实现它的监听器,你可以在它的回调上创建你的意图,像这样

val intent= Intent( this@YourCalssname,EventDetail::class.java)

【讨论】:

  • 我尝试了holder.title.context,但随后在startActivity(intent) 上出现错误。类型不匹配。要求:上下文,发现:意图
  • 我仍然遇到同样的错误。我添加了错误的屏幕截图
  • 你忘记了上下文context.startActivity(intent)
【解决方案2】:

这来自 Kotlin 中的 OnBindviewholder '

holder.itemView.setOnClickListener { v ->
            val intent = Intent(v.context, QuestionsActi::class.java)
            v.context.startActivity(intent)

}

'

【讨论】:

    【解决方案3】:

    你可以使用 holder.itemView.context.startActivity(intent)here is my error

    我是这样解决的

    Solution

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    • 我投票关闭它,因为代码是图像的形式,其次,这是与之前发布的其他代码完全相同的代码。
    猜你喜欢
    • 2017-03-23
    • 2021-12-21
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多