欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android dialog设置不可取消后,返回键不可用(onKeyDown无效)

程序员文章站 2022-03-02 15:31:01
...

Android dialog设置不可取消后,返回键不可用(onKeyDown无效)

当activity中dialog设置为不可取消时,点击系统返回键是不会使dialog消失,也不会退出当前activity

dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);

但是,如果此时需求需要系统返回键发挥作用时,重写activity中的onKeyDown是不起作用的

//返回键事件会先被dialog拦截,onKeyDown方法并不会执行
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    return super.onKeyDown(keyCode, event);
}

正确✔方法应该使用dialog.setOnKeyListener

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
             doSomething();
             return true;
         }
         return false;
     }
});
相关标签: Android android