单击后退关闭对话框并关闭活动

Dee*_*pak 8 android

我正在显示活动开始的对话框:

mDialog.setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)

当用户按下后退按钮时,它首先关闭对话框然后再按下后退按钮关闭活动.我想在单次背压下完成此操作,关闭对话框并关闭活动.我也试过以下代码:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // AppDialogUtils.mDialog.setCancelable(true);
            // AppDialogUtils.mDialog.dismiss();
            mActivity.finish();
        }
        return super.onKeyDown(keyCode, event);
    }
Run Code Online (Sandbox Code Playgroud)

Nie*_*orp 14

设置mDialog.setOnCancelListener(listener)并关闭该Activity侦听器.

@Override
mDialog.setOnCancelListener(new OnCancelListener() {

    public void onCancel(DialogInterface interface) {
        this.finish();            
    }
});
Run Code Online (Sandbox Code Playgroud)

或者你可以用OnKeyListener你的Dialog.

mDialog.setOnKeyListener(new Dialog.OnKeyListener() {

        @Override
        public boolean onKey(DialogInterface interface, int keyCode,
                KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                this.finish();
            }
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)