爱程序网

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();

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

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助