AndEngine场景中的祝酒词

时间:2012-03-24 06:48:02

标签: android andengine

我正在使用场景管理,我从场景扩展了不同的类,用于显示不同的模式。 我正在接受Toasting消息的问题。 在从场景扩展的我的Mode1类中,我想显示一个toast消息,但它给出了错误 “无法在未调用looper.prepare()”

的线程内创建处理程序

我尝试在处理程序中执行此操作,但结果相同。我试图在主类中创建一个静态处理程序,但没有结果。 任何人都可以告诉我解决方案吗?

3 个答案:

答案 0 :(得分:4)

关键是在UI线程上运行它 - 这就是我使用的

    public void gameToast(final String msg) {
    this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
           Toast.makeText(MyMainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });
}

答案 1 :(得分:2)

从你的BaseGameActivity扩展的类中的

只需要创建一个像

这样的方法
public static void MakeToast(String Msg)
{
    message = Msg;
    Handles.sendEmptyMessage(0);
}

static Handler Handles = new Handler()
{
    public void handleMessage(android.os.Message msg) {

        if(msg.what==0)
        {
            Toast.makeText(myCxt, message, Toast.LENGTH_SHORT).show();
        }
    };
};

在你的场景课中你会打电话。     YourBaseGameActivity.MakeToast(“Hello World”);

message也是一个静态String变量。

答案 2 :(得分:1)

您也可以使用以下方式创建Toast消息。

mainActivity.toastOnUiThread("No moves available for REDO",
                Toast.LENGTH_SHORT);