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 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。