我正在使用場景管理,並且我從場景中擴展了不同的類,用於顯示不同的模式。 我在Toasting消息中得到了概率。 在我的模式1類從現場延伸我想顯示敬酒消息,但它給錯誤 「不能創建內螺紋處理程序尚未調用looper.prepare()」AndEngine場景中的敬酒
我試圖做這裏面的處理程序,但相同結果。我試圖在主類中創建一個靜態處理程序,但沒有結果。 任何人都可以告訴我解決方案嗎?
我正在使用場景管理,並且我從場景中擴展了不同的類,用於顯示不同的模式。 我在Toasting消息中得到了概率。 在我的模式1類從現場延伸我想顯示敬酒消息,但它給錯誤 「不能創建內螺紋處理程序尚未調用looper.prepare()」AndEngine場景中的敬酒
我試圖做這裏面的處理程序,但相同結果。我試圖在主類中創建一個靜態處理程序,但沒有結果。 任何人都可以告訴我解決方案嗎?
您還可以使用以下方式創建Toast消息。
mainActivity.toastOnUiThread("No moves available for REDO",
Toast.LENGTH_SHORT);
的關鍵是在UI線程中運行它 - 這是我用
public void gameToast(final String msg) {
this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MyMainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
}
從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」); YourBaseGameActivity.MakeToast(「Hello World」);
消息也是一個靜態字符串變量。
但問題是,在我的場景類從場景擴展上述代碼不起作用。沒有任何runonuithread方法。 – 2012-03-26 04:20:16
嘗試myActivity.this.runOnUiThread()其中myActivity是您的主要活動的名稱。 – jmroyalty 2012-03-26 12:27:53
只是爲了澄清 - runOnUiThread()方法是Android Activity類的一部分 - 並非AndEngine中的任何內容,不是Scene,不是SceneManager。但是,您的主要活動擴展了BaseGameActivity(或由AndEngine提供的其中一個變體),它們總是必須擴展Android Activity類,所以這就是調用隱藏的地方。 – jmroyalty 2012-03-26 13:35:33