Тосты в AndEngine Scenes - PullRequest
       8

Тосты в AndEngine Scenes

0 голосов
/ 24 марта 2012

Я использую управление сценой, и у меня есть различные классы, расширенные от сцены, которые используются для отображения разных режимов.Я получаю пробу в тостах сообщений.В моем классе Mode1, расширенном от сцены, я хочу показать всплывающее сообщение, но оно выдает ошибку: «Не удается создать обработчик внутри потока, который не вызвал looper.prepare ()» *

Я пытался сделать это внутри обработчика, но так жерезультат.Я пытался сделать статический обработчик в основном классе, но безрезультатно.Кто-нибудь может сказать мне решение?

Ответы [ 3 ]

4 голосов
/ 24 марта 2012

Ключ в том, чтобы запустить его в потоке пользовательского интерфейса - это то, что я использую

    public void gameToast(final String msg) {
    this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
           Toast.makeText(MyMainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });
}
2 голосов
/ 16 августа 2012

в вашем классе, выходящем из 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");

сообщение также является статической строковой переменной.

1 голос
/ 11 августа 2013

Вы также можете создать тостовое сообщение следующим образом.

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