Похоже, хорошая возможность использовать AlertDialog .
Как ни странно, в Android нет встроенного диалога для этого (насколько я знаю). К счастью, это просто небольшая дополнительная работа над созданием стандартного AlertDialog. Вам просто нужно создать EditText, чтобы пользователь мог вводить данные, и установить его как представление AlertDialog. При необходимости вы можете настроить разрешенный тип ввода, используя setInputType .
Если вы можете использовать переменную-член, вы можете просто установить для переменной значение EditText, и оно сохранится после закрытия диалогового окна. Если вы не можете использовать переменную-член, вам может понадобиться прослушиватель для отправки строкового значения в нужное место. (Я могу редактировать и уточнять больше, если это то, что вам нужно).
В вашем классе:
private String m_Text = "";
В OnClickListener вашей кнопки (или в функции, вызываемой оттуда):
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();