【问题标题】:onKeyDown is not being called [duplicate]onKeyDown 没有被调用[重复]
【发布时间】:2017-11-09 12:49:34
【问题描述】:

我想处理navigation-bar 按钮。 我看到我可以覆盖MainActivity中的onKeyDown()方法

@Override
public boolean onKeyDown(int code, KeyEvent e) {
if(code == KeyEvent.KEYCODE_BACK){
    return true;
}else{
return super.onKeyDown(code, e);
}
}

但它没有被调用。

【问题讨论】:

    标签: android


    【解决方案1】:

    请添加到构造函数中

    setFocusable(true);
    requestFocus();
    

    【讨论】:

    • 它们在 MainActivity 中都未解决。应该在哪里添加它们?另外,我使用: dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);隐藏导航栏(只有在显示键盘时才会显示。
    【解决方案2】:

    它被调用了,但你什么也没做?

    打电话给finish() 什么的。

    你也可以覆盖onBackPressed()

    【讨论】:

    • 我里面有断点,系统不调用。
    【解决方案3】:

    尝试敬酒或记录

      @Override
    public boolean onKeyDown(int code, KeyEvent e) {
        if (code == KeyEvent.KEYCODE_BACK) {
            Toast.makeText(this, "on press", Toast.LENGTH_SHORT).show();
            return true;
        } else {
            return super.onKeyDown(code, e);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-16
      • 2017-08-15
      • 1970-01-01
      • 2017-11-12
      • 2013-09-11
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      相关资源
      最近更新 更多