Estoy usando AlertDialog.Builder para mostrar un cuadro de diálogo para solicitar al usuario que ingrese una contraseña, luego deseo guardar esa contraseña en una preferencia, sin embargo, no puedo encontrar la manera de obtener el resultado de la entrada del diálogo de alerta método.¿Cómo puedo obtener los resultados de un AlertDialog?
Aquí es esencialmente lo que me gustaría ser capaz de hacer:
String result;
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle("Please enter a password");
final EditText input = new EditText(this);
b.setView(input);
b.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int whichButton)
{
//I get a compile error here, it wants result to be final.
result = input.getText().toString();
}
});
b.setNegativeButton("CANCEL", null);
b.create().show();
Sin embargo, estoy abierto a hacer algo como showDialog(int);
a continuación, utilizando el método onCreateDialog(int)
y de alguna manera establecer el resultado y la recepción de alguna otro método, pero no tengo idea de cómo llevar a cabo la última parte.
Lo siento, no entiendo muy bien lo que está pasando aquí, o cómo iba a usar esto para lograr lo que estoy tratando de lograr. – finiteloop
@segfault, editado mi respuesta – evilone
evilone sugiere utilizar el patrón Observer y crear su propio oyente (TextListener).Su actividad que aloja este AlertDialog puede implementar TextListener que llamará aPostitiveResult (CharSequence) fuera de AlertDialog, y pasará el resultado que está buscando en función de su pregunta. A continuación, puede actuar en su resultado como lo desee. –