Sembra una buona opportunità per usare un AlertDialog .
Per quanto possa sembrare semplice, Android non ha una finestra di dialogo integrata per farlo (per quanto ne so). Fortunatamente, è solo un piccolo lavoro extra per la creazione di un AlertDialog standard. Devi semplicemente creare un EditText affinché l'utente possa inserire i dati e impostarlo come vista di AlertDialog. È possibile personalizzare il tipo di input consentito utilizzando setInputType , se necessario.
Se sei in grado di utilizzare una variabile membro, puoi semplicemente impostare la variabile sul valore di EditText, e persisterà dopo che la finestra di dialogo è stata chiusa. Se non è possibile utilizzare una variabile membro, potrebbe essere necessario utilizzare un listener per inviare il valore della stringa nel posto giusto. (Posso modificare ed elaborare di più se questo è quello che ti serve).
All'interno della tua classe:
private String m_Text = "";
All'interno di OnClickListener del tuo pulsante (o in una funzione chiamata da lì):
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
// Set up the input
final EditText input = new EditText(this);
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();