2010-10-31 67 views
8

我注意到当在catch块内使用时,没有显示toast。 有没有人知道如何在捕捉异常时显示敬酒?一个例子:Toast在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

是否出现返回声明? – JimR 2010-10-31 19:29:57

+0

不,我试过了,它没有改变任何东西。什么都没有发生...... – cody 2010-10-31 19:37:45

回答

14

应该是这样的:

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

哈,那是非常明显的。有时我们会在简朴的海洋中寻找复杂的东西。 :) – JimR 2010-10-31 19:43:27

+0

这个作品,但不知道为什么它被选为最佳答案。为什么你要将静态Toast传递给一个非静态对象,如果你要做的只是显示它? Toast.makeText(this,R.string.txt_file_not_found,Toast.LENGTH_LONG).show(); < - 这会工作得很好,并且占用更少的内存空间 – xil3 2011-01-12 13:48:02

+0

对于无法工作的人来说,吐司有时候不会在模拟器中使用时显示,当你在自己的android手机上测试你的项目时工作正常。检查有关“敬酒”和“模拟器”的另一个主题是服务有问题。 GL – deadfish 2012-04-05 12:07:31

11

是的,我把它现有的线后面的权利:

如果你之前睡2秒
Toast.makeText(this, R.string.txt_file_not_found, Toast.LENGTH_LONG).show(); 
+0

不知道为什么其他答案被认为是最好的 - 这显然是最合理的方式来做到这一点。除非你对吐司做其他事情,否则不需要将静态对象传递给另一个对象,然后使用它来显示...无论如何,我给了你+1,我认为这是给出的最佳答案问题:) – xil3 2011-01-12 13:46:26

+0

@ xil3:我认为@cody接受了另一个答案,因为它解决了这个问题,但发布了自己的答案只是为了告知其他人。 – 2011-04-25 04:17:36