如何在对话框中处理后退按钮?

新手上路,请多包涵

我正在开发一个应用程序,当按下按钮时,它会打开一个带有确定和取消按钮的对话框。

它工作正常。

当用户按下后退按钮时,我将按如下方式处理

public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK))
    {

    }
 return super.onKeyDown(keyCode, event);
}

但是上面的方法没有被调用。我该如何处理?

原文由 kiran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 358
2 个回答
dialog.setOnKeyListener(new Dialog.OnKeyListener() {

            @Override
            public boolean onKey(DialogInterface dialog, int keyCode,
                    KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
                    finish();
                    dialog.dismiss();
                }
                return true;
            }
        });

原文由 Yasin Hassanien 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于科特林:

我试过这个,这对我来说很好。

 dialog.setOnKeyListener { _, keyCode, _ ->
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //do to task here
        }
        true
    }

原文由 Ghayas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题