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;
}
});