我正在通过Andengine为
Android开发一款游戏.我有MainActivity类和GameScene类.我在GameActivity中使用Toast消息.它正在发挥作用.
Toast.makeText(this," Hello World",Toast.LENGTH_SHORT).show();
所以我想在GameScene类中使用Toast消息.但它不起作用.这是代码:
Toast.makeText(activity,Toast.LENGTH_SHORT).show();
我必须使用“活动”而不是“这个”.但它不起作用
为什么?
编辑:
当我使用第二个时,会发生错误.
logcat的:
http://s29.postimg.org/k8faj9mdj/Capture.png
解决方法
您正尝试在后台线程中显示Toast.您应该在主UI线程上执行所有UI操作.
异常RuntimeException:无法在没有调用Looper.prepare()的线程内创建处理程序对于初学者来说可能有点神秘,但实质上它告诉你你在错误的线程中.
要解决它,请将吐司包裹在例如runOnUiThread():
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(...).show();
}
});