I am using AlertDialog builder to take some input from user, where I have written a small validation, like: If EditText is empty show SnackBar and do not close dialog.
What's happening, once user left EditText empty and tap on Positive button, getting message in Snackbar but also closing dialog.
So how can I control on closing of AlertDialog, If condition fails, here is the code:
public void inputDialog() {
LayoutInflater layoutInflaterAndroid = LayoutInflater.from(context);
final View mView = layoutInflaterAndroid.inflate(R.layout.layout_dialog, null);
final AlertDialog.Builder alertDialogBuilderUserInput = new AlertDialog.Builder(context);
acceptUserInput = (EditText) mView.findViewById(R.id.acceptUserInput);
alertDialogBuilderUserInput.setView(mView);
alertDialogBuilderUserInput
.setCancelable(false)
.setPositiveButton("SAVE", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogBox, int id) {
// ToDo get user input here
String strUserInput = acceptUserInput.getText().toString().trim();
if(TextUtils.isEmpty(strUserInput)) {
Snackbar snackbar = Snackbar.make(mView, "Name field cannot be left blank", Snackbar.LENGTH_LONG);
snackbar.show();
return;
}
}
})
.setNegativeButton("CLOSE",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogBox, int id) {
dialogBox.cancel();
}
});
AlertDialog alertDialogAndroid = alertDialogBuilderUserInput.create();
alertDialogAndroid.show();
}