有时候我没可能需要在点击按钮进行一些检测,但是并不想关闭次对话框(系统默认点击任何一个按钮则关闭对话框),处理方法如下:在点击事件下添加如下代码:
- try
- {
- Field field = dialog.getClass()
- .getSuperclass().getDeclaredField(
- "mShowing");
- field.setAccessible(true);
- // 将mShowing变量设为false,表示对话框已关闭
- field.set(dialog, false);
- dialog.dismiss();
- }
- catch (Exception e)
- {
- }
将上面的代码加到哪个按钮的单击事件代码中,哪个按钮就再也无法关闭对话框了。如果要关闭对话框,只需再将mShowing设为true即可。要注意的是,在一个按钮里设置了mShowing变量,也会影响另一个按钮的关闭对话框功能,因此,需要在每一个按钮的单击事件里都设置mShowing变量的值。