2010-10-31 36 views
8

Tôi nhận thấy rằng bánh mì nướng không được hiển thị khi nó được sử dụng bên trong khối catch. Có ai biết làm thế nào để hiển thị bánh mì nướng khi bắt ngoại lệ? Một thí dụ:Bánh mì nướng không hiển thị khi được sử dụng trong khối đánh bắt

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

Liệu nó xuất hiện nếu bạn ngủ trong 2 giây trước return return? – JimR

+0

Không .. Tôi đã thử và nó không thay đổi bất cứ điều gì. Không có gì xảy ra ... – cody

Trả lời

14

nên được như thế này:

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

Hah, điều đó rõ ràng là không rõ ràng. Đôi khi chúng ta tìm kiếm các biến chứng trong biển đơn giản. :) – JimR

+0

Điều này hoạt động nhưng không chắc chắn lý do tại sao nó được chọn là câu trả lời hay nhất. Tại sao bạn truyền bánh mì nướng tĩnh đến một đối tượng không tĩnh nếu tất cả những gì bạn định làm là chỉ hiển thị nó? Toast.makeText (điều này, R.string.txt_file_not_found, Toast.LENGTH_LONG) .show(); <- Điều này sẽ làm việc tốt và với ít dấu chân bộ nhớ – xil3

+0

Đối với những người mà nó không hoạt động, bánh mì nướng đôi khi không hiển thị khi bạn sử dụng nó trong trình giả lập, bạn thử nghiệm dự án của bạn trên điện thoại android của riêng nó hoạt động tốt. Kiểm tra một chủ đề khác về "bánh mì nướng" và "trình giả lập" có vấn đề với dịch vụ. GL – deadfish

11

Vâng, tôi đặt nó ngay phía sau dòng hiện có:

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

Không chắc chắn tại sao câu trả lời khác được chấp nhận là tốt nhất - đây rõ ràng là cách hợp lý nhất để làm điều đó. Trừ khi bạn đang làm những thứ khác để bánh mì nướng, không cần phải vượt qua một tĩnh cho đối tượng khác và sau đó sử dụng để hiển thị ... Dù sao, tôi đã cho bạn 1 cho những gì tôi nghĩ là câu trả lời tốt nhất cho điều này question :) – xil3

+0

@ xil3: Tôi nghĩ rằng @cody đã chấp nhận câu trả lời khác bởi vì nó giải quyết được vấn đề, nhưng đăng câu trả lời của riêng mình chỉ để thông báo cho người khác. –

Các vấn đề liên quan