在一个AlertDialog中添加setPositiveButton按钮的响应事件处理onClick,onClick默认的响应是当前这个AlertDialog消失,现在的需求是,点击setPositiveButton后当前这个AlertDialog不消失,请问怎么实现啊?

解决方案 »

  1.   

    使用反射:
    在你的setPositiveButton中添加:
    //用于不关闭对话框

    try {
    Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
    field.setAccessible(true);
    field.set(dialog, false);
    } catch (Exception e) {
    e.printStackTrace();
    }添加上述代码后就可以使dialog无法关闭,在你需要关闭的地方,添加:
    //关闭对话框
    try {
    Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
    field.setAccessible(true);
    field.set(dialog, true);
    } catch (Exception e) {
    e.printStackTrace();
    }
      

  2.   

    为什么不行呢
    我把那段try{}catch{}放在setPositiveButton中dialog还是消失了