我创建了一个窗口,我通过广播接收器在屏幕上显示它。但问题是它出现在屏幕上,我想在按下后退按钮后关闭它。我无法获得事件在此 View 上按下按钮。我的后退代码如下所示-
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getKeyCode() == KEYCODE_BACK) {
Log.d("LOG", "back button is pressed");
}
return true;
}
});
但是什么都没有发生。我试图通过 DISPATCHKEY 做同样的事情,但它也没有用。请帮助我解决我没有弄清楚的问题。这在 View 上不起作用吗? ?
最佳答案
维护 Window 的全局引用并覆盖 onBackPressed() 试试这个:
@Override
public void onBackPressed() {
if (view != null && view.isShowing()) {
view.dismiss();
} else {
super.onBackPressed();
}
}
关于android - 设备的后按事件以关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48221093/