【问题标题】:Toast does not display when used in catch block在 catch 块中使用时不显示 Toast
【发布时间】:2010-10-31 19:27:46
【问题描述】:

我注意到在 catch 块中使用 toast 时不会显示它。 有谁知道在捕获异常时如何显示敬酒?一个例子:

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

【问题讨论】:

  • 在return语句前睡2秒会出现吗?
  • 不。我试过了,但没有任何改变。什么都没有发生...

标签: android exception show toast catch-block


【解决方案1】:

应该是这样的:

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

【讨论】:

  • 哈,这太明显了。有时我们在简单的海洋中寻找复杂性。 :)
  • 这可行,但不确定为什么它被选为最佳答案。如果您要做的只是显示它,为什么要将静态 toast 传递给非静态对象? Toast.makeText(this, R.string.txt_file_not_found, Toast.LENGTH_LONG).show();
  • 对于那些它不起作用的人,当你在模拟器中使用它时,toast 有时不会显示,当你在自己的 android 手机上测试你的项目时它工作正常。检查另一个关于“toast”和“emulator”的主题,服务有问题。总帐
  • 我也在我的实际 Nexus S 设备中使用 toast,有时它也没有显示,我不知道为什么。所以它不仅仅是在模拟器中
【解决方案2】:

是的,我把它放在现有行的后面:

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

【讨论】:

  • 不知道为什么其他答案被认为是最好的 - 这显然是最合乎逻辑的方法。除非您对 Toast 做其他事情,否则无需将静态对象传递给另一个对象,然后用它来显示...无论如何,我给了您 +1,因为我认为这是给定的最佳答案问题:)
  • @xil3:我认为@cody 接受了另一个答案,因为它解决了问题,但发布了他/她自己的答案只是为了通知其他人。
猜你喜欢
  • 1970-01-01
  • 2016-12-13
  • 2016-06-15
  • 2021-12-03
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多