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,那么你真正的意思是什么?