Comment puis-je obtenir les résultats d'une AlertDialog?
Je suis en utilisant un AlertDialog.Générateur de rapports pour afficher une boîte de dialogue invite l'utilisateur à entrer un mot de passe, je veux enregistrer ce mot de passe dans une préférence, cependant je ne peux pas comprendre comment obtenir le résultat de la boîte de dialogue d'alerte de méthode de saisie.
Ici est essentiellement ce que je voudrais être capable de faire:
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();
Cependant, je suis ouvert à faire quelque chose comme la showDialog(int);
puis à l'aide de la onCreateDialog(int)
méthode et en quelque sorte établir les résultats et le recevoir dans une autre méthode, mais je n'ai aucune idée de la façon d'aller sur la dernière partie.
- Voir aussi Rappel sur AlertDialog
Vous devez vous connecter pour publier un commentaire.
Exemple simplifié:
-- EDIT --
Ou vous essayez ce code:
Faible mais rapide solution:
Déclarer une Activité au niveau de la méthode:
et l'appeler à partir d'positive cliquez sur le bouton listner:
Vous pouvez modifier lblDiaDestination valeur juste avant d'alerte.show():
Vous pouvez suivre les Dialogue tutoriel developer.android.com.
D'abord créer de la classe de boîte de dialogue:
Ajout d'une liste
Puis ajout d'un écouteur à cette classe pour passer résultat à l'activité.
En passant les Événements de la boîte de Dialogue de l'Hôte
Variable de résultat , d'en faire un membre de la variable , au lieu de variable locale. En faisant de "résultat" en tant que membre de la variable il est accessible dans l'ensemble de l'activité.(classe parent qui s'étend de l'activité)
Cette assez longue. J'espère que ma contribution pourrait être utile pour les nouveaux arrivants.
Je pense que la clé pour répondre à la question est de déclarer la variable résultat en tant que membre de l'activité (appelons YourActivity). Puis, à partir de l'intérieur de la "onClick" la méthode, l'utilisation YourActivity.c'.résultat pour accéder à cette variable.
J'ai edit @finiteloop codes ci-dessous: