【问题标题】:onKeyDown and onKeyUp block the onBackPressedonKeyDown 和 onKeyUp 阻止 onBackPressed
【发布时间】:2017-09-25 03:06:14
【问题描述】:

起初我在活动中对 onBackPressed 进行了覆盖。我可以使用此方法正确捕获后退按钮按下事件。后来,为了检测音量按钮的按下和释放动作,我实现了onKeyDown和onKeyUp方法。然后我发现无论我从 onKeyDown 和 onKeyUp 返回 true 还是 false,onBackPressed 方法都不会被触发。有谁知道如何使 onBackPressed 和 onKeyDown,OnkeyUp 全部被调用?非常感谢任何帮助!

【问题讨论】:

  • dispatchKeyEvent 相信你忘了加default: return super.dispatchKeyEvent(event);
  • 你是完全正确的。 dispatchKeyEvent 解决了我的问题。我过去默认返回的是 super.onKeyUp(keyCode, event) 和 onKeyDown(keyCode, event) ,它们不会将事件传递给 onBackPressed 方法。
  • 我认为您可以在答案区发布您的答案,这样我就可以将其标记为我接受的答案。

标签: android onkeydown onkeyup onbackpressed


【解决方案1】:

正如我在 cmets 中已经说过的,这是因为您忘记在 dispatchKeyEvent 方法中添加 default: return super.dispatchKeyEvent(event);

为了更好的说明,请看dispatchKeyEvent这个例子

【讨论】:

    猜你喜欢
    • 2015-07-21
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多