Suena como una buena oportunidad para usar un AlertDialog .
Tan básico como parece, Android no tiene un cuadro de diálogo incorporado para hacer esto (que yo sepa). Afortunadamente, es solo un pequeño trabajo adicional además de crear un AlertDialog estándar. Simplemente necesita crear un EditText para que el usuario ingrese datos y configurarlo como la vista del AlertDialog. Puede personalizar el tipo de entrada permitida usando setInputType , si lo necesita.
Si puede usar una variable miembro, simplemente puede establecer la variable en el valor de EditText, y persistirá después de que se haya cerrado el diálogo. Si no puede usar una variable miembro, es posible que necesite usar un escucha para enviar el valor de la cadena al lugar correcto. (Puedo editar y elaborar más si esto es lo que necesitas).
Dentro de tu clase:
private String m_Text = "";
Dentro de OnClickListener de su botón (o en una función llamada desde allí):
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();
global Context, Context cont;
y luego reemplazar "esto" en el cuadro de diálogo de alerta porcont
. AlertDialog.Builder builder = nuevo AlertDialog.Builder (cont); entrada final de EditText = nuevo EditText (cont);Agregaré a la respuesta de @ Aaron con un enfoque que le brinda la oportunidad de diseñar el cuadro de diálogo de una mejor manera. Aquí hay un ejemplo ajustado:
Aquí está el diseño de ejemplo utilizado para crear el cuadro de diálogo EditText:
El resultado final:
fuente
getView()
confindViewById(android.R.id.content)
y todo funcionó como encanto. Muchas gracias por compartir :)(ViewGroup)
!@dimen/content_padding_normal
?¿Qué tal este EJEMPLO ? Parece sencillo.
fuente
Si quieres un poco de espacio en
left
yright
de lainput
vista, se puede añadir un poco de relleno comodimens.xml
Espero que ayude
fuente
resources
?Lo encontré más limpio y más reutilizable para extender
AlertDialog.Builder
para crear una clase de diálogo personalizada. Esto es para un diálogo que le pide al usuario que ingrese un número de teléfono. También se puede proporcionar un número de teléfono preestablecido llamandosetNumber()
antes de llamarshow()
.InputSenderDialog.java
dialog_input_sender_number.xml
Uso:
fuente
@LukeTaylor: Actualmente tengo la misma tarea a mano (crear una ventana emergente / diálogo que contiene un EditText).
Personalmente, encuentro que la ruta completamente dinámica es algo limitante en términos de creatividad.
DISEÑO DE DIÁLOGO TOTALMENTE PERSONALIZADO: en
lugar de confiar completamente en el Código para crear el Diálogo, puede personalizarlo por completo de la siguiente manera:
1) - Cree un nuevo
Layout Resource
archivo ... ¡Esto actuará como su Diálogo, permitiendo una libertad creativa total!NOTA: Consulte las pautas de diseño de materiales para ayudar a mantener las cosas limpias y en punto.
2) - Proporcione ID a todos sus
View
elementos. En mi código de ejemplo a continuación, tengo 1EditText
y 2Buttons
.3) - Crear un
Activity
con unButton
, con fines de prueba ... Lo haremos inflar y lanzar su diálogo!Pedazo de pastel! ¡Libertad creativa completa! Solo asegúrese de seguir las pautas de material;)
¡Espero que esto ayude a alguien! Déjame saber lo que ustedes piensan!
fuente
Es trabajo para mi
¿Como llamar? (Nombre de la actividad actual)
showForgotDialog (current_activity_name.this);
fuente