2010-10-31 8 views
8

Noté que no se muestra un brindis cuando se usa dentro de un bloque catch. ¿Alguien sabe cómo mostrar brindis cuando detecta excepciones? Un ejemplo:Toast no se muestra cuando se usa en el bloque catch

try { 
    // try to open a file 
} catch (FileNotFoundException e) { 
    Toast.makeText(this, R.string.txt_file_not_found, Toast.LENGTH_LONG); 
    return; // cancel processing 
} 
+0

qué parece si duerme durante 2 segundos antes de que el declaración de devolución? – JimR

+0

No .. Lo intenté y no cambió nada. No pasa nada ... – cody

Respuesta

14

debería ser así:

Toast toast = Toast.makeText(this, R.string.txt_file_not_found, Toast.LENGTH_LONG); 
toast.show(); 
+0

Hah, eso fue deslumbrantemente obvio. A veces buscamos las complicaciones en el mar de la simplicidad. :) – JimR

+0

Esto funciona, pero no estoy seguro de por qué fue seleccionado como la mejor respuesta. ¿Por qué pasas la tostada estática a un objeto no estático si todo lo que vas a hacer es simplemente mostrarlo? Toast.makeText (this, R.string.txt_file_not_found, Toast.LENGTH_LONG) .show(); <- esto funcionaría bien y con menos huella de memoria – xil3

+0

Para las personas que no funcionan, las tostadas a veces no se muestran cuando las usas en el emulador, cuando pruebes tu proyecto en tu propio teléfono Android, funciona bien. Ver otro tema sobre "tostadas" y "emulador" hay un problema con el servicio. GL – deadfish

11

Sí, lo puse justo detrás de la línea existente:

Toast.makeText(this, R.string.txt_file_not_found, Toast.LENGTH_LONG).show(); 
+0

No estoy seguro de por qué esa otra respuesta fue aceptada como la mejor: esta fue claramente la forma más lógica de hacerlo. A menos que esté haciendo otras cosas para el Toast, no hay necesidad de pasar el estático a otro objeto y luego usarlo para mostrar ... De todos modos, le di +1 por lo que pensé que era la mejor respuesta para esto. pregunta :) – xil3

+0

@ xil3: Creo que @cody aceptó la otra respuesta porque resolvió el problema, pero publicó su propia respuesta solo para informar a los demás. –

Cuestiones relacionadas