2009-01-17 22 views
9

Estoy creando un juego de coincidencia para Android, y cuando el usuario obtiene una coincidencia, debe aparecer un cuadro de diálogo que dice "¡Coincidir!" Sin embargo, no puedo entender cómo hacerlo. Si uso Thread.currentthread(). Sleep, el diálogo nunca aparece.Ventana emergente programada en Android

android.app.AlertDialog a = new android.app.AlertDialog.Builder(match.this).setTitle("Match!").show(); 
Thread.currentthread().sleep(1000); 
a.dismiss(); 

No pasa nada - el programa simplemente se cuelga por un segundo. Me gustaría que aparezca por solo 1 segundo, o si hay otro tipo de elemento emergente, eso también sería bueno.

Respuesta

16

¿Está tratando de mostrar un mensaje de texto en una ventana emergente durante un corto período de tiempo en la pantalla?

Para este tipo de alertas tostadas son grandes:

Toast.makeText(this, "Match!", Toast.LENGTH_LONG).show(); 

es eso lo que busca? Here is the Java Doc.

+0

¡Perfecto! ¡Muchas gracias! –

+0

De nada ;-) –

+0

También hice esto y lo obtuve, pero ¿hay algún método para mostrarlo en el centro de la aplicación u otra ubicación? – BIBEKRBARAL

4

El diálogo se muestra en el hilo actual pero está poniendo el hilo en modo de suspensión para que nunca aparezca. Aparte de la aceleración de eventos, hay pocos casos en los que desee llamar a suspensión con un retraso sustancial del subproceso de interfaz de usuario.

En este caso, usar un Toast es más fácil que el póster anterior. Un par de otras maneras de manejar el trabajo que quiere hacer en el futuro

  • Java temporizadores. La acción va a pasar
    en un hilo diferente por lo que tiene que tener cuidado lo GUI llamadas que realiza
  • Vistas tienen un postDelayed (acción Ejecutable, largas delayMillis) método hará que el Ejecutable para ejecutar en el subproceso de interfaz de usuario después de más o menos retrasa a Milis.
Cuestiones relacionadas