当前位置: 首页 > 知识库问答 >
问题:

如何双击打开活动?(科特林)

裴翰学
2023-03-14

当两次单击倒计时时,我希望它打开全屏活动。

    countDownTimer.setOnClickListener(object : DoubleClickListener() {
        override fun onDoubleClick(v: View?) {
            Toast.makeText(applicationContext,"Full Screen Mode!",Toast.LENGTH_SHORT).show()
            val screenFull = Intent(this, FullScreen::class.java) //The Intent on this line is presenting an error
            startActivity(screenFull)
        }
    })

} //This bracket is from OnCreate

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 //milliseconds
    }
}

上面的代码在编译代码时会出现以下错误。

使用提供的参数无法调用以下函数:public constructor Intent(p0:Context!,p1:Class

我怎样才能解决这个问题?谢谢

共有2个答案

皇甫鸿远
2023-03-14

这意味着您传入的参数,this和Class,与任何构造函数都不匹配。这是因为此指的是您的双击监听器对象,而不是活动(或您想要传递的上下文)

如果您删除了此的一部分并开始重新键入它,它应该会为您提供从该范围中可以看到的外部对象的自动完成选项<代码>this@MyActivity或者任何你想要的东西。

另外,如果您不知道的话,有一个类可以设置双击侦听器。以下是如何添加空实现,以便只需覆盖要侦听的回调:https://developer.android.com/training/gestures/detector#detect-支持手势的子集

钮兴安
2023-03-14

更换此线路

val screenFull=Intent(这是全屏::class.java)

使用:

val screenFull=意图(this@YourActivityName,全屏::类。java)

这将解决您的问题。

 类似资料:
  • 我已经尝试了所有的方法,但它不适合我。我想打开或恢复应用程序,无论屏幕打开,同时单击通知。 我使用了以下方法:

  • 我正在工作的应用程序中,我被要求显示通知。对于通知,我使用的是FireBase云消息(FCM)。我能够得到通知,当应用程序在后台。 2.)MyFirebaseInstanceIDService 这是我在MyFirebaseMessagingService类中为onMessageReceived()方法编写的代码示例。

  • 我有一个带有通知的应用程序,如果我单击它们,就会打开某个活动。我想要的是,如果我点击通知,活动已经打开,它不是重新开始,但只是出现在前面。 我可以用标志来管理它吗?还是我应该在SharedPreferences中存储一个变量来检查它是否已打开? 谢谢!

  • 我看到了一个Firebase控制台的代码:如何为通知指定click_action,我使用了该通知,但在初始化变量CLS时出现了一个错误。我试图通过定义CLS=NULL来解析,以清除错误。它无法使用click_action打开我指定的活动 拜托,我有没有搞错什么?我怎么才能让它起作用?