2011-10-14 9 views
5

Estoy usando Toast.makeText para mostrar los resultados de los diálogos y tener un problema un tanto extraño: el texto se muestra sobre el marco que debería contenerlo, como este :Toast.makeText (...). Show() a veces está desalineado

El mensaje está desalineado con el marco. Por favor, alinearlo mejor. [_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___]

general estoy usando el código que parece

Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 

de un diálogo. He oído que el contexto incorrecto a veces puede causar problemas de inflación, pero getOwnerActivity() está devolviendo nulo, por lo que está apagado. En cualquier caso, hubiera pensado que getContext() proporcionaría el contexto pasado en tiempo de construcción, que es la actividad de todos modos.

¿Alguna sugerencia?

+2

Intente cambiar getContext() con getApplicationContext() ... –

Respuesta

20

puede probar esto:

Toast bread = Toast.makeText(getApplicationContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 
+0

No disponible desde dentro de la clase Dialog pero ¿'getContext(). GetApplicationContext()' work? –

+0

¡Funcionó un regalo, gracias! –

+0

Fue escrito como un comentario de pregunta antes de publicar esta respuesta –

1

Si crea la tostada desde el interior de una actividad que se debe utilizar: this o MyActivityName.this como el parámetro de contexto.

+0

Es de un diálogo, pero gracias de todos modos. –

3
bread.setGravity(5,5,5); 

prueba cambiando los valores hasta que obtengas la ubicación exacta.

Pero el uso de Gravity.CENTER y otras constantes es la forma prefererrd ..

1

Trate de usar,

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true" /> 

en el archivo de manifiesto.