Android弹出dialog后无法捕捉back键的解决方法
更新时间:2017年09月13日 11:15:20 作者:晨小主
这篇文章主要为大家详细介绍了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 Jetpack组件之ViewModel的使用
Jetpack 是一个丰富的组件库,它的组件库按类别分为 4 类,分别是架构(Architecture)、界面(UI)、 行为(behavior)和基础(foundation)。本文将从源码和大家讲讲Jetpack组件中ViewModel的使用2023-04-04
Android使用CountDownTimer模拟短信验证倒计时
这篇文章主要为大家详细介绍了Android使用CountDownTimer模拟短信验证倒计时,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-07-07
Android中Fragment与Activity的生命周期对比
这篇文章主要介绍了Android中Fragment与Activity的生命周期对比,Fragment是在Activity的基础之上进行设计的,比Activity多出几个控制生命周期的回调函数,需要的朋友可以参考下2016-02-02
Android开发实现读取excel数据并保存为xml的方法
这篇文章主要介绍了Android开发实现读取excel数据并保存为xml的方法,涉及Android针对Excel数据读取及xml格式文件的构造与保存相关操作技巧,需要的朋友可以参考下2017-10-10
Android中的android:layout_weight使用详解
layout_weight的作用是设置子空间在LinearLayout的重要度(控件的大小比重)。layout_weight的值越低,则控件越重要,下面为大家介绍下具体的使用方法2013-06-06


最新评论