我不能在libgdx中添加吐司

时间:2017-10-09 21:27:47

标签: interface libgdx toast

我试图用接口调用它来创建吐司 界面工作得很好只是当我试图用它祝酒时,它崩溃了

Android启动器中的

public class AndroidLauncher extends AndroidApplication implements Interface {    
 public void tost() {
        Toast.makeText(getContext(), "wrong num",
                Toast.LENGTH_LONG).show();}}
游戏类中的

   interface Interface{void tost();}
    public class MyGdxGame extends ApplicationAdapter {
        final private Interface interface;
        public MyGdxGame(Interface interface){this.interface=interface;}
     public void render() {interface.tost}

1 个答案:

答案 0 :(得分:0)

必须在Android UI线程上执行Android toast。 LibGDX中的游戏循环在OpenGL线程上运行,因此您必须将方法发布到UI线程以安全地运行它,如下所示:

public class AndroidLauncher extends AndroidApplication implements Interface {    

    public void tost() {
        runOnUiThread(new Runnable() {
            @Override
            public void run () {
                Toast.makeText(getContext(), "wrong num",
                    Toast.LENGTH_LONG).show();}
            }
        });
    }

}