我正在通过 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/