android 当Activity中弹出对话框时,无法监听返回键
来源:互联网 发布:漏洞扫描平台源码 编辑:程序博客网 时间:2024/06/05 01:09
当你的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、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; } });
阅读全文
0 0
- android 当Activity中弹出对话框时,无法监听返回键
- android 当Activity中弹出对话框时,无法监听返回键
- android 当Activity中弹出对话框时,无法监听返回键
- Android 中弹出对话框 代码
- Android Service中弹出全局对话框
- android在Service中弹出Dialog对话框
- Android在Service中弹出对话框(Dialog)
- Android中弹出对话框的实现
- android service中弹出dialog对话框
- Android Service中弹出全局对话框
- Android在广播接收者中弹出对话框
- Android菜鸟笔记-Service中弹出对话框,即全局性质Dialog不依赖于Activity
- android activity返回键监听
- android 对话框中弹出对话框原对话框关闭
- Swing中弹出对话框
- c#中弹出对话框
- MFC中弹出对话框
- java中弹出对话框
- #pragma pack(push,1) & #pragma pack(pop)
- Tuning Your DBMS Automatically with Machine Learning(智能数据库优化系统)
- Selenium笔记 原理分析及其使用之二 webelement
- 工厂方法模式和抽象工厂模式
- MFC CListCtrl 取消选中
- android 当Activity中弹出对话框时,无法监听返回键
- 火山小视频去水印解析下载工具
- SQLServer与ASP中DATEDIFF函数区别
- lintcode/leetcode由易至难第10题:Delete Node in a Linked List
- 正则表达式菜鸟教程3语法
- 机器学习中的特征变换(核函数)
- java设计模式20_观察者模式
- MathJax基础教程笔记
- unordered_map与map的区别!