Il semble que c'est une bonne occasion d'utiliser un AlertDialog.
Aussi basique que cela puisse paraître, Android n'a pas de boîte de dialogue intégrée pour cela (autant que je sache). Heureusement, c'est juste un peu de travail supplémentaire en plus de créer une AlertDialog standard. Vous devez simplement créer un EditText pour que l'utilisateur saisisse des données, et le définir comme vue de l'AlertDialog. Vous pouvez personnaliser le type d'entrée autorisé en utilisant setInputType, si nécessaire.
Si vous pouvez utiliser une variable membre, vous pouvez simplement définir la variable sur la valeur de l'EditText, et elle persistera après la fermeture de la boîte de dialogue. Si vous ne pouvez pas utiliser de variable membre, vous devrez peut-être utiliser un auditeur pour envoyer la valeur de la chaîne au bon endroit. (je peux éditer et élaborer davantage si c'est ce dont vous avez besoin).
Dans votre classe:
private String m_Text = "";
Dans l'OnClickListener de votre bouton (ou dans une fonction appelée à partir de là):
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Titre");
// Configuration de l'entrée
final EditText input = new EditText(this);
// Spécifiez le type d'entrée attendu; ici, par exemple, il définit l'entrée comme un mot de passe et masquera le texte
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
// Configuration des boutons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
}
});
builder.setNegativeButton("Annuler", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();