Estoy usando un cuadro de diálogo de alerta de campo de texto simple con un botón positivo y uno de cancelación. Quiero validar mi diálogo de alerta y evitar que el botón hecho cierre el AlertDialog si la entrada no es válida.¿Hay alguna forma de evitar que AlertDialog se cierre con entradas no válidas?
¿Hay algún modo de crear un cuadro de diálogo personalizado para evitar que el controlador PositiveButton onClick() cierre el cuadro de diálogo si falla la validación?
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();
}
}
Lo siento, me he dado cuenta de que esto es un duplicado de [esta pregunta (no aceptada)] (http://stackoverflow.com/q/4785571/403455). Lo cerraría como un duplicado, pero estoy buscando una mejor respuesta. Si la respuesta es "no", que así sea. –
Crear su propio cuadro de diálogo personalizado parece ser el camino a seguir basado en [preguntas anteriores] (http://stackoverflow.com/questions/4016313/how-to-keep-an-alertdialog-open-after-button-onclick- Está despedido). Parece que esa será la solución más simple, y es lo que he tenido que hacer en el pasado. – theisenp
Voy a votar tu pregunta. Veamos si la insignia Discplined se aplica a las preguntas :) – EboMike