【问题标题】:Android - Passing keys down to launched parent activityAndroid - 将键传递给已启动的父活动
【发布时间】:2021-09-08 22:33:12
【问题描述】:

我有一个活动 A,我通过意图启动另一个活动。但我的目标是将密钥传递给活动 1,而不是在活动 2 处处理。从 onkeydown 或 onkeyup 返回 false 是没有用的。我怎样才能做到这一点?

Class activity1: Activity(){

Override oncreate(){
    // set view
    // launch activity2
    launchactivy2()
}

fun launchactivy2(){
    val playIntent = Intent("android.intent.action.VIEW")
    playIntent.putExtra("position", "top")
    playIntent.component = ComponentName(
            "com.myapp.package”,
        "com.myapp.package.activity2”
    )
    context.startActivity(playIntent)
    }

fun onKeyDown(){
    // Handle keys here
} 
}

我的 activity2 如下所示,我不是在处理密钥,而是在重新调整 false。

Class activity2: Activity(){
Override oncreate(){
    // set view
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
    super.onKeyDown(keyCode, event)
    return false
}
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
    super.onKeyUp(keyCode, event)
    return false
}
}

尝试只返回 false,而不是从 onKey.. 方法进行超级调用,但没有用。有没有可能做到这一点?

【问题讨论】:

  • 为什么 Activity1 不能覆盖在 activity2 上覆盖的相同方法?
  • @cutiko 无法控制activity2,除了keyHandling
  • 我要的是activity1 ,如果您要覆盖activity2 上的方法,您怎么能无法控制?你真的可以在那里写代码,你怎么没有控制权?
  • 是的,为什么不在Activity2 中为Activity1 调用方法onKeyDown()?或者更好地使Activity2 扩展Activity1
  • 它们来自不同的应用程序,不属于我。

标签: android kotlin android-activity android-keypad


【解决方案1】:

有可能实现吗?

没有。每个活动都是它自己的窗口;关键事件转到一个窗口。

最简单的解决方案是拥有一个活动,而不是两个。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多