android - 设备的后按事件以关闭窗口

标签 android back-button softkeys

我创建了一个窗口,我通过广播接收器在屏幕上显示它。但问题是它出现在屏幕上,我想在按下后退按钮后关闭它。我无法获得事件在此 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/

相关文章:

android - 如何隐藏安卓软键

java - 在android上拖放一个按钮..帮助

android - build.gradle 中的新 applicationId 是如何工作的?

asp.net-mvc - MVC 4 - 注销后后退按钮问题

android - 查明设备是否有软键

Android:如何显示 ics 任务切换器或检测用户是否单击该软键?

android - 如何让我的应用程序在华为 Mate 10 Pro 或其他 18 :9 ratio phones? 上全屏显示

android - 如何从一个 Canvas 复制到另一个 Canvas

javascript - IE 找不到用 JS 创建的隐藏字段值

android - 显示上一个 fragment