android 如何让弹出的对话框不消失


Builder builder = new AlertDialog.Builder(this);
  builder.setTitle(android.R.string.dialog_alert_title)
    .setIcon(android.R.drawable.ic_dialog_info)
    .setPositiveButton(android.R.string.ok,
      new OnClickListener() {
       public void onClick(DialogInterface dialog,
         int which) {

       // 不消失
        try {
         java.lang.reflect.Field field = dialog
           .getClass().getSuperclass()
           .getDeclaredField("mShowing");
         field.setAccessible(true);
         field.set(dialog, false);
        } catch (Exception e) {
         e.printStackTrace();
        }
       }
      })
    .setNegativeButton(android.R.string.no,
      new OnClickListener() {
       public void onClick(DialogInterface dialog,
         int which) {

        // 消失
        try {
         java.lang.reflect.Field field = dialog
           .getClass()
           .getSuperclass()
           .getDeclaredField("mShowing");
         field.setAccessible(true);
         field.set(dialog, true);
        } catch (Exception e) {
         e.printStackTrace();
        }
        dialog.dismiss();
       }
      }).show();

以上方法,经过测试之后发现,如果在点击“确定”之前点击对话框以外的地方,对话框会消失;但如果点击“确定”再点击对话框以外的地方,则不会消失。

本站声明
本文转载自:http://www.cnblogs.com/HrLive/p/5066820.html     作者:韩晓潤     发布日期:2015/12/22     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2017 ITdaan.com 粤ICP备14056181号