android 当Activity中弹出对话框时,无法监听返回键
2017-06-08 09:20
411 查看
当你的Activity 已经显示了Dialog时候. 通过下面的方法都是无法监听到返回键事件的:
1、重写onKeyDown或者onKeyUp方法;
2、重写onBackPressed方法;
3、重写dispatchKeyEvent方法;
因为上述方法是重写在activity里面的,也就是说当activity是当前焦点时,它可以捕捉到相应的back键事件,而有dialog弹出时,dialog获取了当前焦点,所以activity里面的方法无法获取到back键事件。
可以使用下面方法监听:
方法1、自定义的Dialog,该监听只对返回键有效,当点击Dialog中的按钮dismiss的时候,不会回调;
resultDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
System.out.println("dismiss listener----------");
}
});
1、重写onKeyDown或者onKeyUp方法;
2、重写onBackPressed方法;
3、重写dispatchKeyEvent方法;
因为上述方法是重写在activity里面的,也就是说当activity是当前焦点时,它可以捕捉到相应的back键事件,而有dialog弹出时,dialog获取了当前焦点,所以activity里面的方法无法获取到back键事件。
可以使用下面方法监听:
方法1、自定义的Dialog,该监听只对返回键有效,当点击Dialog中的按钮dismiss的时候,不会回调;
resultDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
System.out.println("dismiss listener----------");
}
});
1、Dialog中重载下面方法;
public class UpdateDialog extends Dialog { public UpdateDialog(@NonNull Context context) { super(context); } public UpdateDialog(@NonNull Context context, @StyleRes int themeResId) { super(context, themeResId); } @Override public boolean dispatchKeyEvent(@NonNull KeyEvent event) { switch(event.getKeyCode()){ case KeyEvent.KEYCODE_BACK: System.out.println("dismiss listener----------"); break; default: break; } return super.dispatchKeyEvent(event); } }2、设置监听回调;
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){ if (!TextUtils.isEmpty(force_update) && force_update.equals("1")) { finish(); } } return false; } });
相关文章推荐
- android 当Activity中弹出对话框时,无法监听返回键
- android 当Activity中弹出对话框时,无法监听返回键
- Android 如何监听返回键,弹出一个退出对话框
- Android开发 之 监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,例如要求弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- android弹出对话框时对返回键的监听细节
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- [转]Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框