Używam prostego okna dialogowego z polem tekstowym z przyciskiem dodatnim i przyciskiem anulowania. Chcę potwierdzić moje okno dialogowe alertu i zapobiec zakończeniu zamykania AlertDialog, jeśli dane wejściowe są nieprawidłowe.Czy istnieje sposób zapobiegający zamykaniu AlertDialog przy nieprawidłowych danych wejściowych?
Czy jest jakiś sposób na utworzenie niestandardowego okna dialogowego, aby uniemożliwić procedurę obsługi onClick() PositiveButton podczas zamykania okna dialogowego, jeśli sprawdzanie poprawności nie powiedzie się?
class CreateNewCategoryAlertDialog {
final EditText editText;
final AlertDialog alertDialog;
class PositiveButtonClickListener implements OnClickListener {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = editText.getText().toString();
if(name.equals("")) {
editText.requestFocus();
editText.setError("Please enter a name");
// Some code to stop AlertDialog from closing goes here...
} else {
doSomethingUsefulWithName();
}
}
}
AlertDialog buildAlertDialog(Context context) {
return new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.enter_name))
.setMessage(context.getString(R.string.enter_name_msg))
.setView(editText)
.setPositiveButton(context.getString(R.string.done), new PositiveButtonClickListener())
.setNegativeButton(context.getString(R.string.cancel), null).create();
}
}
Niestety, Właśnie zauważyłem jest to duplikat [tej kwestii (nieodebranego)] (http://stackoverflow.com/q/4785571/403455). Zamknęłbym to jako duplikat, ale szukam lepszej odpowiedzi. Jeśli odpowiedź brzmi "nie", niech tak będzie. –
Tworzenie własnego niestandardowego okna dialogowego wydaje się być sposobem na podstawie [poprzednich pytań] (http://stackoverflow.com/questions/4016313/how-to-keep-an-alertdialog-open-after-button-onclick- jest zwolniony). Wygląda na to, że będzie to najprostsze rozwiązanie i właśnie to musiałem zrobić w przeszłości. – theisenp
Głosuję na twoje pytanie. Zobaczmy, czy odznaka Discplined dotyczy pytań :) – EboMike