Sí, sé que hay AlertDialog.Builder, pero me sorprende saber cuán difícil (bueno, al menos no fácil de programar) para mostrar un diálogo en Android.
Solía ser un desarrollador de .NET, y me pregunto si hay algún equivalente de Android de lo siguiente.
if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
// Do something...
}
Respuestas:
AlertDialog.Builder realmente no es tan difícil de usar. Al principio es un poco intimidante, pero una vez que lo has usado un poco, es simple y poderoso. Sé que has dicho que sabes cómo usarlo, pero de todos modos aquí hay un simple ejemplo:
También puede reutilizar eso
DialogInterface.OnClickListener
si tiene otros cuadros sí / no que deberían hacer lo mismo.Si está creando el Diálogo desde dentro de a
View.OnClickListener
, puede usarloview.getContext()
para obtener el Contexto. Alternativamente puedes usaryourFragmentName.getActivity()
.fuente
AlertDialog.Builder builder = new AlertDialog.Builder(getView().getContext());
Prueba esto:
fuente
The constructor AlertDialog.Builder(MainActivity.DrawerItemClickListener) is undefined
La respuesta de Steve H es acertada, pero aquí hay un poco más de información: la razón por la que los diálogos funcionan de la manera en que lo hacen es porque los diálogos en Android son asíncronos (la ejecución no se detiene cuando se muestra el diálogo). Debido a esto, debe usar una devolución de llamada para manejar la selección del usuario.
Consulte esta pregunta para una discusión más larga entre las diferencias en Android y .NET (en lo que respecta a los diálogos): Diálogos / AlertDialogs: Cómo "bloquear la ejecución" mientras el diálogo está activo (estilo .NET)
fuente
Esto es trabajo para mí:
fuente
Preguntarle a una persona si quiere llamar o no a Diálogo.
fuente
La respuesta de Steves es correcta aunque anticuada con fragmentos. Aquí hay un ejemplo con FragmentDialog.
La clase:
Para iniciar el diálogo:
También puede dejar que la clase implemente
onClickListener
y use eso en lugar de oyentes integrados.fuente
Gracias Nikki, tu respuesta me ha ayudado a mejorar una existente simplemente agregando mi acción deseada de la siguiente manera
fuente
En Kotlin:
fuente
Mostrar el diálogo de forma anónima como cadena de comandos y sin definir otro objeto:
fuente
Todas las respuestas aquí se reducen a un código extenso y no fácil de leer: justo lo que la persona que pregunta estaba tratando de evitar. Para mí, el enfoque más fácil es emplear lambdas aquí:
Lambdas en Android requiere el complemento retrolambda ( https://github.com/evant/gradle-retrolambda ), pero de todos modos es muy útil para escribir código más limpio.
fuente
Gracias. Uso el API Nivel 2 (Android 1.1) y en lugar de
BUTTON_POSITIVE
yBUTTON_NEGATIVE
tengo que usarBUTTON1
yBUTTON2
.fuente
1.Cree el mensaje, el título y el botón Positivo, Negativo de AlertDialog:
2.Ahora encuentre ambos botones en DialogInterface Haga clic y luego configureOnClickListener ():
3.Para mostrar el diálogo de alerta:
Nota: No olvide la palabra clave final con AlertDialog.
fuente
fuente
puede implementar una solución genérica para decisiones y usarla en otro caso, no solo para sí / no, y personalizar la alerta con animaciones o diseño:
Algo como esto; Primero cree su clase para transferir datos:
después de una interfaz para devolver el resultado
Ahora puede crear utilidades para acceder fácilmente (en esta clase puede implementar diferentes animaciones o diseños personalizados para la alerta):
y la última llamada en actividad o fragmento; puede usar esto en su caso o para otra tarea:
fuente
Puedes hacerlo tan fácil en Kotlin:
fuente
Para Kotlin en Android ::
fuente
Implementación de Kotlin.
Puede crear una función simple como esta:
y llámalo así:
fuente