Android:是否可以不自动关闭AlertDialog.Builder?

Android:是否可以不自动关闭AlertDialog.Builder?,android,android-alertdialog,Android,Android Alertdialog,我有一个AlertDialog.Builder类型的AlertDialog.Builder。这有两个按钮,一个是正极,另一个是负极。单击肯定按钮时,我将进行条件检查,如果检查成功,则应关闭alertDialogBuilder,否则android应用程序将继续显示它。这可能吗 现行代码 EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI

我有一个
AlertDialog.Builder
类型的
AlertDialog.Builder
。这有两个按钮,一个是正极,另一个是负极。单击肯定按钮时,我将进行条件检查,如果检查成功,则应关闭
alertDialogBuilder
,否则android应用程序将继续显示它。这可能吗

现行代码

EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle("test");
    alertDialogBuilder.setMessage("testMessage");
    alertDialogBuilder.setCancelable(false);                        
    editText = new EditText(this);
    editText.setText("hi");
    alertDialogBuilder.setView(editText);
    editText.requestFocus();

    alertDialogBuilder.setNegativeButton("Cancel", dialogLinstener);
    alertDialogBuilder.setPositiveButton("Save", dialogLinstener);

    alertDialogBuilder.show();
}

private DialogInterface.OnClickListener dialogLinstener = new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {            
        if(which == DialogInterface.BUTTON_POSITIVE) {

            String str = editText.getText().toString();
            if(!str.equals("hi")) {

                               // do something..

            } else {

                               // do something else..

            }
        } else if (which == DialogInterface.BUTTON_NEGATIVE) {
            //do nothing.
        }

        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null)
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

        return;
    }
};

保留对
AlertDialog.Builder
创建的
AlertDialog
的引用。然后,您可以根据需要显示或关闭
警报对话框

AlertDialog dialog =  alertDialogBuilder.create(); 
dialog.show(); 
然后在别的地方:

dialog.dismiss(); 

如果您的意思是不自动关闭AlertDialog.Builder,则单击外部时不应关闭该对话框,则可以执行以下操作:-

dialog.setCanceledOnTouchOutside(false);
如果您只想在满足条件时关闭对话框,那么请保留对
AlertDialog.Builder
创建为@Ascorbin的
AlertDialog
的引用,该引用在您的条件下正确表示

if(condition == true){
//code
dialog.dismiss();
}

只有在满足条件时,此对话框才会关闭。

可能重复嘿,谢谢你的回复,但这不是我的意思。@Shobhit,那么你真正的意思是什么?