java - Android Toast 消息不工作

标签 java android andengine android-toast

我正在通过 Android 版 Andengine 开发一款游戏。我有 MainActivity 类和 GameScene 类。我在 GameActivity 中使用 Toast 消息。它正在发挥作用。

Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();

所以我想在 GameScene 类中使用 Toast 消息。但它不起作用。这是代码:

Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();

我必须使用“Activity ”而不是“这个”。但是没用

为什么?

编辑:

当我使用第二个时,发生错误。 日志猫: http://s29.postimg.org/k8faj9mdj/Capture.png

最佳答案

您正在尝试在后台线程中显示 Toast。您应该在主 UI 线程上执行所有 UI 操作。

异常 RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 对于初学者来说可能有点神秘,但本质上它告诉你你在错误的线程中.

要解决它,请将 toast 包裹起来,例如runOnUiThread():

activity.runOnUiThread(new Runnable() {
  @Override
  public void run() {
    Toast.makeText(...).show();
  }
});

关于java - Android Toast 消息不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20678436/

相关文章:

android - 如何绘制填充多边形? [Android、Andengine]

android - 在一个通用池 AndEngine 中使用不同的 Sprite 纹理

java - 获取数组中字符串的索引,并在另一个数组中删除这些索引处的字符串

android - 无法解析依赖项 : com. squareup.retrofit2 :retrofit:2. 3.0

java - 从 JedisPool 获取资源时线程处于等待状态

android - 录制视频工作然后 logcat 吓坏了

java - Android - 无法使用 FileProvider 添加电子邮件附件

android - 和动画 Sprite 的引擎设置位置

java - 连接到 MS Access 的 Eclipse 的深不可测的编码行为

java - 如何使用 QuickFixJ 将字符串 FIX 消息转换为 FIX FIX50SP2 格式