Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 04/12/09, 14:21:39
Array

[xs_avatar]
capdepiu capdepiu no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 42
Modelo de smartphone: HTC Magic

ventana emergente

Hola a todos!

Estaba haciendo pruebas de programación, y estoy buscando la forma de que al pulsar un botón me aparezca una ventanita dando un mensaje, como si fuese la siguiente imagen (con o sin boton, claro)

_________________________
|..........................................|
| Se han guardado los datos...|
|..........Correctamente...........|
|...........____________..........|
|..........|.....Aceptar.....|........|
|________________________|

O como por ejemplo cuando abres un contacto y mantienes pulsado sobre "Llamar a movil"....

A ver si puede alguien echarme una manita ;)

Gracias por adelantado.

saludos,
__________________
HoyTocaCambiar Magic & AppleMacbook
Responder Con Cita


  #2  
Viejo 06/12/09, 03:07:56
Array

[xs_avatar]
migue85 migue85 no está en línea
Miembro del foro
 
Fecha de registro: ago 2008
Mensajes: 67
Modelo de smartphone: Magic y Diamond

lo que buscas es el manejo de la clase dialog:

Código:
AlertDialog.Builder ad = new AlertDialog.Builder(c);
ad.setTitle("Opercion completada");
ad.setMessage("Se han guardado los datos correctamente");
adv.setPositiveButton("Aceptar", null);
adv.setIcon(R.drawable.un icono si te apetece);
adv.show();
por ejemplo

hay cosas mas elaboradas. En concreto podemos hacer mas cosillas con el dialog como impedir que se cancele al pulsar el boton "back" o quitarlo de la vista en tiempo de ejecucion si sucede un evento en concreto (para ello hay que hacer alguna que otra triquiñuela) pero de momento, eso que buscas es sencillo, te dejo ese codigo a ver si te funciona. Te recomiendo (si no lo haces) que uses un xml para guardar ahi los strings que uses de forma que sea mucho mas facil hacer luego una aplicacion multilenguaje.
Un saludo
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 07/12/09, 22:52:07
Array

[xs_avatar]
capdepiu capdepiu no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 42
Modelo de smartphone: HTC Magic

muchas gracias!!

lo probaré en cuanto tenga oportunidad y ya te contaré los resultados

graciaas!!
__________________
HoyTocaCambiar Magic & AppleMacbook
Responder Con Cita
  #4  
Viejo 10/12/09, 12:34:06
Array

[xs_avatar]
migue85 migue85 no está en línea
Miembro del foro
 
Fecha de registro: ago 2008
Mensajes: 67
Modelo de smartphone: Magic y Diamond

Otra opcion de que salga una notificacion emergente es el uso de toast.
En este caso no habra ningun boton y la notificacion desaparecera al cabo de breves instantes:

Código:
Toast t = Toast.makeText(this, "Se han guardado los datos correctamente", Toast.LENGTH_SHORT);
t.show();
El parametro "this" es el contexto de la actividad.

Comentame que tal te ha ido, un saludo
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 12/12/09, 08:58:58
Array

[xs_avatar]
vierco vierco no está en línea
Android Dev
· Votos compra/venta: (1)
 
Fecha de registro: may 2008
Localización: Pamplona
Mensajes: 6,095
Modelo de smartphone: Nexus varios
Tu operador: Orange
me encanta esta seccion, sois unas maquinas
__________________
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 16/12/09, 16:40:09
Array

[xs_avatar]
capdepiu capdepiu no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 42
Modelo de smartphone: HTC Magic

 Cita: Originalmente Escrito por migue85 Ver Mensaje
Otra opcion de que salga una notificacion emergente es el uso de toast.
En este caso no habra ningun boton y la notificacion desaparecera al cabo de breves instantes:

Código:
Toast t = Toast.makeText(this, "Se han guardado los datos correctamente", Toast.LENGTH_SHORT);
t.show();
El parametro "this" es el contexto de la actividad.

Comentame que tal te ha ido, un saludo

He probado la solución que has aportado y como dice la imagen.... ha ido perfecto!!
captura.png


La otra solución aportada la he probado, pero no se de donde sacar la variable "c", dado que no se de donde viene. De todas formas, gracias por la solución.

 Cita: Originalmente Escrito por migue85 Ver Mensaje
lo que buscas es el manejo de la clase dialog:

Código:
AlertDialog.Builder ad = new AlertDialog.Builder(c);
ad.setTitle("Opercion completada");
ad.setMessage("Se han guardado los datos correctamente");
adv.setPositiveButton("Aceptar", null);
adv.setIcon(R.drawable.un icono si te apetece);
adv.show();
por ejemplo

hay cosas mas elaboradas. En concreto podemos hacer mas cosillas con el dialog como impedir que se cancele al pulsar el boton "back" o quitarlo de la vista en tiempo de ejecucion si sucede un evento en concreto (para ello hay que hacer alguna que otra triquiñuela) pero de momento, eso que buscas es sencillo, te dejo ese codigo a ver si te funciona. Te recomiendo (si no lo haces) que uses un xml para guardar ahi los strings que uses de forma que sea mucho mas facil hacer luego una aplicacion multilenguaje.
Un saludo


De nuevo, muchas gracias por tu ayuda
__________________
HoyTocaCambiar Magic & AppleMacbook
Responder Con Cita
  #7  
Viejo 17/12/09, 01:22:51
Array

[xs_avatar]
migue85 migue85 no está en línea
Miembro del foro
 
Fecha de registro: ago 2008
Mensajes: 67
Modelo de smartphone: Magic y Diamond

Hola de nuevo.
Me alegro un monton de que te haya servido de ayuda.
Siento el fallo del copy pasteo del codigo, c en el caso del ejemplo es el contexto de la aplicacion.

Yo personalmente, llamo c al contexto de la actividad y en el metodo onCreate de la misma incluyo cuando es necesario la instruccion:

c = this;

habiendo declarado en la clase como atributo privado:

private Context c;

Esto es debido a que si ponemos en el metodo de la ventanita la linea con this en lugar de c, no siempre nos aseguramos de que funcione ya que si estamos dentro de, por ejemplo, un onClick listener de un boton, this en ese caso hace referencia a dicho listener y no al contexto de la actividad.

Para probar de nuevo el codigo basta con que cambies c por this y si no funciona, prueba a poner c como atributo e inicializarlo en el onCreate.

Un saludo!
Responder Con Cita
  #8  
Viejo 18/12/09, 09:45:40
Array

[xs_avatar]
capdepiu capdepiu no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 42
Modelo de smartphone: HTC Magic

 Cita: Originalmente Escrito por migue85 Ver Mensaje
Hola de nuevo.
Me alegro un monton de que te haya servido de ayuda.
Siento el fallo del copy pasteo del codigo, c en el caso del ejemplo es el contexto de la aplicacion.

Yo personalmente, llamo c al contexto de la actividad y en el metodo onCreate de la misma incluyo cuando es necesario la instruccion:

c = this;

habiendo declarado en la clase como atributo privado:

private Context c;

Esto es debido a que si ponemos en el metodo de la ventanita la linea con this en lugar de c, no siempre nos aseguramos de que funcione ya que si estamos dentro de, por ejemplo, un onClick listener de un boton, this en ese caso hace referencia a dicho listener y no al contexto de la actividad.

Para probar de nuevo el codigo basta con que cambies c por this y si no funciona, prueba a poner c como atributo e inicializarlo en el onCreate.

Un saludo!
He cambiado lo del Context, y lo he puesto tal como has dicho, pero ahora me surge un problema....

cuando aparece la ventanita con el mensaje y el boton, no espera a que yo le de, simplemente se cierra (luego de ad.show() )... es decir, deberia ponerle algo para hacer wait?

gracias por tu gran ayuda
__________________
HoyTocaCambiar Magic & AppleMacbook
Responder Con Cita
  #9  
Viejo 18/12/09, 15:09:27
Array

[xs_avatar]
migue85 migue85 no está en línea
Miembro del foro
 
Fecha de registro: ago 2008
Mensajes: 67
Modelo de smartphone: Magic y Diamond

Hola!
mmmm prueba entonces a cambiar la linea del ejemplo anterior:
Código:
adv.setPositiveButton("Aceptar", null);
por esta otra

Código:
                    ad.setPositiveButton("Aceptar",
                           new OnClickListener()
                           {
                               public void onClick(DialogInterface d, int n) { }
                           });
A ver si a la tercera va la vencida
saludos!
Responder Con Cita
  #10  
Viejo 22/12/09, 10:19:35
Array

[xs_avatar]
capdepiu capdepiu no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 42
Modelo de smartphone: HTC Magic

 Cita: Originalmente Escrito por migue85 Ver Mensaje
Hola!
mmmm prueba entonces a cambiar la linea del ejemplo anterior:
Código:
adv.setPositiveButton("Aceptar", null);
por esta otra

Código:
                    ad.setPositiveButton("Aceptar",
                           new OnClickListener()
                           {
                               public void onClick(DialogInterface d, int n) { }
                           });
A ver si a la tercera va la vencida
saludos!
Pueessss a la tercera.... me parece que todavia no.... jejeje
He corregido el código, pero aun así no espera a que yo pulse sobre el botón, la ventana desaparece antes. Es decir, aparece la ventana, pero inmediatamente desaparece de nuevo...

Gracias por tu esfuerzo y ayuda.
__________________
HoyTocaCambiar Magic & AppleMacbook
Responder Con Cita
  #11  
Viejo 22/12/09, 14:24:32
Array

[xs_avatar]
migue85 migue85 no está en línea
Miembro del foro
 
Fecha de registro: ago 2008
Mensajes: 67
Modelo de smartphone: Magic y Diamond

que raro...
si puedes pon el codigo de la actividad a ver que puede ser lo que falla
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 22:46:27 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /