2010-10-31 15 views
8

Ich habe festgestellt, dass ein Toast nicht angezeigt wird, wenn es in einem Catch-Block verwendet wird. Kann jemand Toasts zeigen, wenn er Ausnahmen abfängt? Ein Beispiel:Toast wird nicht angezeigt, wenn im Catch-Block verwendet

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

Ist es angezeigt, wenn Sie für 2 Sekunden schlafen, bevor die Rücksendeanweisung? – JimR

+0

Nein. Ich habe es versucht und es hat nichts geändert. Nichts passiert ... – cody

Antwort

14

sollte wie folgt sein:

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

Hah, das war blendend offensichtlich. Manchmal suchen wir nach den Komplikationen im Meer der Einfachheit. :) – JimR

+0

Das funktioniert aber nicht sicher warum es als beste Antwort ausgewählt wurde. Warum übergibst du den statischen Toast auf ein nicht statisches Objekt, wenn du es nur zeigen willst? Toast.makeText (this, R.string.txt_file_not_found, Toast.LENGTH_LONG) .show(); <- das würde von ganz gut funktionieren und mit weniger Speicherbedarf – xil3

+0

Für Leute, die es nicht funktioniert, kann Toast manchmal nicht zeigen, wenn Sie es im Emulator verwenden, wenn Sie Ihr Projekt auf eigenem Android-Telefon es testen funktioniert gut. Überprüfen Sie ein anderes Thema über "Toast" und "Emulator" gibt es ein Problem mit Service. GL – deadfish

11

Ja, ich es direkt hinter der bestehenden Linie:

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

Nicht sicher, warum diese andere Antwort als die beste akzeptiert wurde - das war eindeutig der logischste Weg, es zu tun. Wenn du dem Toast nichts anderes antust, musst du das statische Objekt nicht an ein anderes Objekt weitergeben und es dann zum Zeigen verwenden ... Jedenfalls gab ich dir +1 für das, was ich für die beste Antwort hielt Frage :) – xil3

+0

@ xil3: Ich denke, dass @cody akzeptiert die andere Antwort, weil es das Problem gelöst, aber seine/ihre eigene Antwort nur um andere zu informieren veröffentlicht. –

Verwandte Themen