分析:AlertDialog 弹出的对话框点击任何按钮会自动关闭是由于系统决定的,分析源码可以知道, AlertDialog中有一个mShowing变量,改变量为true时表示对话框正在显示,系统会关闭对话框。如果mShowing变量为false,系统就不会自己关闭对话框了。
通过反射来获得该变量进行修改;
try{
Field field = dialog.getClass().getSuperclass( ).getDeclaredField("mShowing");
//将mShowing 变量设为false,好让系统对话框已经关闭
field.set(dialog,false);
}
catch(Exception e)
{
}