Klingt nach einer guten Gelegenheit, einen AlertDialog zu verwenden .
So einfach es scheint, Android hat keinen eingebauten Dialog, um dies zu tun (soweit ich weiß). Glücklicherweise ist es nur eine kleine zusätzliche Arbeit, zusätzlich zum Erstellen eines Standard-AlertDialogs. Sie müssen lediglich einen EditText erstellen, damit der Benutzer Daten eingeben kann, und ihn als Ansicht des AlertDialogs festlegen. Sie können den zulässigen Eingabetyp bei Bedarf mit setInputType anpassen .
Wenn Sie eine Mitgliedsvariable verwenden können, können Sie die Variable einfach auf den Wert des EditText setzen. Sie bleibt bestehen, nachdem das Dialogfeld geschlossen wurde. Wenn Sie keine Mitgliedsvariable verwenden können, müssen Sie möglicherweise einen Listener verwenden, um den Zeichenfolgenwert an die richtige Stelle zu senden. (Ich kann mehr bearbeiten und ausarbeiten, wenn Sie dies benötigen).
Innerhalb Ihrer Klasse:
private String m_Text = "";
Im OnClickListener Ihrer Schaltfläche (oder in einer von dort aufgerufenen Funktion):
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();