我正在通过 Andengine 为 Android 开发游戏。我有 MainActivity 类和 GameScene 类。我在 GameActivity 中使用 Toast 消息。它正在发挥作用。
Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();
所以我想在 GameScene 类中使用 Toast 消息。但这不起作用。这是代码:
Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();
我必须使用“活动”而不是“这个”。但这不起作用
why?
EDITED:
当我使用第二个时,出现错误。
日志猫:http://s29.postimg.org/k8faj9mdj/Capture.png http://s29.postimg.org/k8faj9mdj/Capture.png
您正在尝试显示一个Toast
在后台线程中。您应该在主 UI 线程上执行所有 UI 操作。
例外情况RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
对于初学者来说可能有点神秘,但本质上它告诉您您处于错误的线程中。
要解决这个问题,请将吐司包裹起来,例如runOnUiThread()
:
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(...).show();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)