Android禁止按键关闭AlertDialog
时间:2014-05-06 23:50:52
收藏:0
阅读:626
在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 }
评论(0)