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

Android弹出dialog后无法捕捉back键的解决方法

程序员文章站 2024-02-12 16:23:58
一、需求 在android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应。 二、解决方案 原因:弹出dialog后,activity失去焦点...

一、需求

在android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应。

二、解决方案

原因:弹出dialog后,activity失去焦点,dialog获得当前焦点。

解决办法:在dialog中可以通过调用setonkeylistener()方法来为dialog增加按键事件的监听。

private void createdialog() {
  alertdialog.builder builder = new alertdialog.builder(this);
  builder.settitle(getstring(r.string.acq_select_hint));

  builder.setpositivebutton(getstring(r.string.dialog_cancel), (dialog, which) -> oncancelclicked(dialog));

  builder.setcancelable(false);
  
  builder.setonkeylistener((dialog, keycode, event) -> {
    if (keycode == keyevent.keycode_back) {
      oncancelclicked(dialog);
    }
    return false;
  });
  builder.create().show();
}

private void oncancelclicked(dialoginterface dialog) {
  setresult(100);
  finish();
  dialog.dismiss();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。