在setPositiveButton(setNegativeButton)中添加:
//用于不关闭对话框try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
//需要关闭的时候调用
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
builder.setPositiveButton("确认", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
//设置不关闭对对话框
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
//A条件,正常响应之后,关闭对话框
//B条件,未符合要求,保留对话框
if(A条件){
//……
//关闭对话框
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
}else{
//……
}
}
});