首页 > 代码库 > Android禁止按键关闭AlertDialog
Android禁止按键关闭AlertDialog
在Android系统中,默认点击AlertDialog中的按键都会关闭该AlertDialog,但有些情况下我们并不希望使对话框关闭,或者希望使对话框在自己需要的时候再关闭。
例如我现在做的一个项目,通过AlertDialog读取用户输入的一个值,希望只有在判断值为正确范围内才关闭该对话框,否则对话框予以保留,并给以用户相应的提醒。
可以利用反射的机制来实现这一效果:
不关闭对话框:
?
1 2 3 4 5 6 7 8 9 10 | // 使对话框无法关闭 try { Field field = dialog.getClass().getSuperclass().getDeclaredField( "mShowing" ); field.setAccessible( true ); field.set(dialog, false ); } catch (Exception e) { e.printStackTrace(); } |
关闭对话框:
1 // 使对话框关闭 2 try { 3 Field field = 4 dialog.getClass().getSuperclass() 5 .getDeclaredField("mShowing"); 6 field.setAccessible(true); 7 field.set(dialog, true); 8 } 9 catch (Exception e) { 10 e.printStackTrace(); 11 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。