我们创建了一个可用于对话框的android库.在我们体验过的带有Android 2.3.6的Samsung galaxy S1 Plus I9005上进行测试后,长按设备菜单按钮会立即关闭活动对话框.我什至不知道长按该按钮的目的.
对于不知道设备的人,此图片应显示您的意思:
在运行AndroID 4.x的设备上不会发生此问题.我在运行AndroID 4.1.2的Samsung galaxy S3甚至带有AndroID 4.0.3自定义ROM的galaxy S1上进行了测试-没问题.
为了禁止关闭对话框,我尝试覆盖onKeyDown,onKeyUp,onPrepareOptionsMenu和其他似乎相关的方法,但是这些方法都没有带来成功或任何有价值的信息.当我尝试调试这些方法时,也会发生同样的情况,因为在调试器到达我可以覆盖的任何方法之前,对话框就消失了.
对话框是通过以下方式创建的:
@OverrIDepublic Dialog onCreateDialog(final int pID) { Dialog dialog; switch (pID) { case LOADING_DIALOG: dialog = DialogCreator.createLoadingDialog(MyActivity.this)); break; default: dialog = null; } super.onCreateDialog(pID); return dialog;}
DialogCreator只是通过使用以下方法创建AlertDialog:
new AlertDialog.Builder(pContext).create();
为了防止对话框被取消,我添加了:
alertDialog.setCanceledOntouchOutsIDe(false);alertDialog.setCancelable(false);
有人知道为什么要关闭对话框吗?
编辑
在“桌面”上时,长按菜单按钮可启动Google搜索.
解决方法:
@QQQestions的答案帮助我解决了这个问题.您应该使用OnKeyListener拦截菜单按钮的长按事件.
编辑
if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0) { return true; // Pretend we processed it} else if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) { return true; // Pretend we processed it}
总结 以上是内存溢出为你收集整理的长按菜单按钮可关闭Android 2.3上的对话框全部内容,希望文章能够帮你解决长按菜单按钮可关闭Android 2.3上的对话框所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)