You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin双击打开Activity时出现Intent参数错误如何修复?

错误原因

Intent 构造方法的第一个入参要求传入 Context 类型的上下文对象,你报错行里写的 this 指向的是当前匿名内部类 DoubleClickListener 的实例,不属于 Context 类型,参数类型不匹配导致编译失败。

修复方案

三种常用修复方式任选其一即可:

  • 方式一:明确引用外层Activity实例作为上下文
    如果这段代码写在Activity类中,将 this 替换为 this@[你的Activity类名],比如你的Activity类名为MainActivity,代码为:
    val screenFull = Intent(this@MainActivity, FullScreen::class.java)
    
  • 方式二:复用已有的ApplicationContext
    你上一行Toast代码已经用到了applicationContext,可以直接复用:
    val screenFull = Intent(applicationContext, FullScreen::class.java)
    
  • 方式三:从View参数获取上下文
    从onDoubleClick方法传入的View参数中获取上下文:
    val screenFull = Intent(v?.context, FullScreen::class.java)
    

修正后完整代码片段

countDownTimer.setOnClickListener(object : DoubleClickListener() {
    override fun onDoubleClick(v: View?) {
        Toast.makeText(applicationContext,"Full Screen Mode!",Toast.LENGTH_SHORT).show()
        // 此处替换为你选择的上下文即可,示例以指定Activity上下文为例
        val screenFull = Intent(this@MainActivity, FullScreen::class.java)
        startActivity(screenFull)
    }
})

// 以下DoubleClickListener代码无需修改
abstract class DoubleClickListener : View.OnClickListener {
    var lastClickTime: Long = 0
    override fun onClick(v: View?) {
        val clickTime = System.currentTimeMillis()
        if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA) {
            onDoubleClick(v)
        }
        lastClickTime = clickTime
    }

    abstract fun onDoubleClick(v: View?)
    companion object {
        private const val DOUBLE_CLICK_TIME_DELTA: Long = 300 //单位:毫秒
    }
}

内容的提问来源于stack exchange,提问作者Shagufta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:21:01