当对话框启动时,不会调用onKeyDown

时间:2012-09-10 14:42:22

标签: android android-dialog

我有一个自定义视图对话框,单击列表项时会弹出​​该视图。我覆盖了我的活动的onKeyDown函数,以查看按下后退按钮时对话框是否已启动,但如果对话框已启动,则onKeyDown不会被调用。

如果我在对话框消失后点击后退按钮,它会被调用没有问题,但我需要知道后面的按钮是否被按下时,如果我需要在设备旋转时需要重新弹出对话框

我搜索了一下,看起来它与我的自定义对话框布局调用setContentView有关,但我找不到的是如何让okKeydown使用该对话框< / p>

1 个答案:

答案 0 :(得分:3)

对于Dialogs,我们有单独的setOnKeyListener,所以请尝试以下代码和....... 你可以像我一样跟踪任何按键...

  • keyCode == KeyEvent.KEYCODE_CAMERA
  • keyCode == KeyEvent.KEYCODE_SEARCH 等

          mProgressDialog.setOnKeyListener(new Dialog.OnKeyListener() {
    
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                    if ((keyCode == KeyEvent.KEYCODE_CAMERA)) {
                        return true;
                    }
                    if ((keyCode == KeyEvent.KEYCODE_SEARCH)) {
                        return true;
                    }
                    return false;
                }
            });