AlertDialog弹出的对话框让点击其他按钮关闭对话框失效,而通过代码控制关闭。

时间:2022-06-25 23:53:06

            分析:AlertDialog 弹出的对话框点击任何按钮会自动关闭是由于系统决定的,分析源码可以知道, AlertDialog中有一个mShowing变量,改变量为true时表示对话框正在显示,系统会关闭对话框。如果mShowing变量为false,系统就不会自己关闭对话框了。

        通过反射来获得该变量进行修改;

          try{

             Field field = dialog.getClass().getSuperclass( ).getDeclaredField("mShowing");

            //将mShowing 变量设为false,好让系统对话框已经关闭

            field.set(dialog,false);

            }

           catch(Exception e)

         {

         }