Parece uma boa oportunidade para usar um AlertDialog .
Por mais básico que pareça, o Android não possui uma caixa de diálogo integrada para fazer isso (tanto quanto eu sei). Felizmente, é apenas um pouco de trabalho extra para criar um AlertDialog padrão. Você simplesmente precisa criar um EditText para o usuário inserir dados e configurá-lo como a exibição do AlertDialog. Você pode personalizar o tipo de entrada permitido usando setInputType , se necessário.
Se você puder usar uma variável de membro, você pode simplesmente definir a variável com o valor do EditText, e ele persistirá após o fechamento da caixa de diálogo. Se você não pode usar uma variável de membro, pode ser necessário usar um ouvinte para enviar o valor da string para o lugar certo. (Posso editar e elaborar mais, se é isso que você precisa).
Dentro da sua turma:
private String m_Text = "";
Dentro do OnClickListener do seu botão (ou em uma função chamada a partir daí):
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();