Android弹出dialog后无法捕捉back键的解决方法
一、需求
在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(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Android 解决dialog弹出时无法捕捉Activity的back事件问题
Android 如何解决dialog弹出时无法捕捉Activity的back事件 在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到back事件: 1)重写onKeyDown或者onKeyUp方法 2)重写onBackPressed方法 3)重写dispatchKeyEvent方法 这三种办法有什么区别在这里不进行阐述,有兴趣的朋友可以查阅相关资料. 然而在有dialog弹出时,想捕捉back键的事件的话,上述三种办法都无法实现.
-
Android解决dialog弹出时无法捕捉Activity的back事件的方法
本文实例讲述了Android解决dialog弹出时无法捕捉Activity的back事件的方法.分享给大家供大家参考.具体分析如下: 在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到back事件: 1)重写onKeyDown或者onKeyUp方法 2)重写onBackPressed方法 3)重写dispatchKeyEvent方法 这三种办法有什么区别在这里不进行阐述,有兴趣的朋友可以查阅相关资料. 然而在有dialog弹出时,
-
Android弹出dialog后无法捕捉back键的解决方法
一.需求 在Android开发过程中,弹出dialog后无法捕捉back键,点击back按键无响应. 二.解决方案 原因:弹出dialog后,activity失去焦点,dialog获得当前焦点. 解决办法:在dialog中可以通过调用setOnKeyListener()方法来为dialog增加按键事件的监听. private void createDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); bui
-
Android 弹出软键盘所遇到的坑及解决方法
demo下载 重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现OnInputViewVisibleListener接口: public class SoftInputAdjustLayout extends RelativeLayout { private static final String TAG = SoftInputAdjustLayout
-
Android 弹出Dialog时隐藏状态栏和底部导航栏的方法
上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUi
-
Android 软键盘弹出时把原来布局顶上去的解决方法
键盘弹出时,会将布局底部的导航条顶上去. 解决办法: 在mainfest.xml中,在和导航栏相关的activity中加: <activity android:name=".filing.MainActivity" android:windowSoftInputMode="adjustResize|stateHidden" /> windowSoftInputMode 属性解释: 活动的主窗口如何与包含屏幕上的软键盘窗口交互.这个属性的设置将会影响两件事
-
BootStrap下的弹出框加载select2框架失败的解决方法
bootstrap下的弹出框加载select2框架失败的解决方案如下所示: $("#modal").on("shown.bs.modal", function(){ //等待弹出框弹出后再渲染select2控件 $("#select2").select2({ //再次渲染父界面后才能够加载出来数据. dropdownParent:$("#mpu_chart"), placeholder: '请选择变量', data:mpuKe
-
Android 从底部弹出Dialog(横向满屏)的实例代码
项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog). 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay_share.xml) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi
-
Android 中从屏幕左下角弹出Dialog动画效果的实现代码
MainActivity代码: import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import androi
-
Android 仿苹果底部弹出Dialog
style文件 <style name="ActionSheetDialogStyle" parent="@android:style/Theme.Dialog"> <!-- 背景透明 --> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:wind
-
详解Android 8.1.0 Service 中 弹出 Dialog的方法
场景:在Service 中开启线程下载升级包,当下载完系统升级包,弹出一个Dialog 提示用户. 注意,Android 系统版本不一样,可能会有不一样的表现.当前是基于 Android 8.1.0 的 Service 中弹 Dialog. 首先,就是要在功能清单列表中声明权限,以下两个都必须声明: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/><!--这行代码必须存在,
-
Android弹出DatePickerDialog并获取值的方法
本文实例为大家分享了Android弹出DatePickerDialog并获取值的具体代码,供大家参考,具体内容如下 目标效果: 主界面有一个TextView,点击弹出日期选择器对话框,默认显示当前日期,选择后点击确定可以在TextView中显示选择的值. 1.activity_main.xml页面定义TextView. activity_main.xml页面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res
随机推荐
- JS 密码强度校验的正则表达式(简单且好用)
- 原生javascript实现的全屏滚动功能示例
- PHP自定义函数格式化json数据示例
- 获得文件夹大小的VBS代码
- js 正则表达式 验证 a/b/c 格式的类型数据
- Openstack 使用migrate进行数据库升级实现方案详细介绍
- 保证JavaScript和Asp、Php等后端程序间传值编码统一
- Form表单上传文件(type="file")的使用
- 利用文件属性结合Session实现在线人数统计
- Android基于Pull方式解析xml的方法详解
- ajax实现异步文件或图片上传功能
- 简单了解JavaScript操作XPath的一些基本方法
- php删除文本文件中重复行的方法
- sql server 2005数据库备份还原图文教程
- jQuery+css实现的时钟效果(兼容各浏览器)
- 用瀑布流的方式在网页上插入图片的简单实现方法
- js创建表单元素并使用submit进行提交
- Java的微信开发中使用XML格式和JSON格式数据的示例
- Android百度地图应用之基本地图功能实现
- Android之禁止ViewPager滑动实现实例