When the user clicks on the save button, an AlertDialog
appears and asks the user to input text for the file name.
If the user clicks the positive button ("Ok") without specifying a name, I want to display a toast which asks them to do so, and keep the AlertDialog
open. But the toast never displays and the dialog closes.
The code for the AlertDialog
is here:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.save_game);
alert.setMessage(R.string.request_name);
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setHint(R.string.untitled);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if(value != null){
// Do something with value
}
else{
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
How can I make this happen?
Thanks!
Public void showToast() {
Toast.makeText(this, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
Just call this method instead of displaying toast from an alert dialog box like this in your code.
else {
showToast();
}
To keep it open use this method
public void forceOpen() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.save_game);
alert.setMessage(R.string.request_name);
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setHint(R.string.untitled);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if(value != null) {
// Do something with value
}
else {
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
}
Just reopen it.. Not sure why it closes but this will work
Change the code as follows:
if(value != null && value.length()>0){
// Do something with value
}else{
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
You can disable the Ok button.If the condition is validate,then enable button again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With