Android Toast消息不起作用

时间:2013-12-19 09:57:51

标签: java android andengine android-toast

我正在开发一款适用于Android的Andengine游戏。我有MainActivity类和GameScene类。我在GameActivity中使用Toast消息。它正在发挥作用。

Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();

所以我想在GameScene课程中使用Toast消息。但它不起作用。这是代码:

Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();

我必须使用“活动”而不是“这个”。但它不起作用

为什么?

已编辑:

当我使用第二个时,会发生错误。 logcat的: http://s29.postimg.org/k8faj9mdj/Capture.png

8 个答案:

答案 0 :(得分:24)

您尝试在后台线程中显示Toast。您应该在主UI线程上执行所有UI操作。

异常RuntimeException: Can't create handler inside thread that has not called Looper.prepare()对于初学者来说可能有点神秘,但实际上它告诉你你的错误。

要解决此问题,请将吐司包裹在runOnUiThread()

activity.runOnUiThread(new Runnable() {
  @Override
  public void run() {
    Toast.makeText(...).show();
  }
});

答案 1 :(得分:1)

您的代码可能有两个原因无法运行。它是你的活动参数为null或...

显示吐司后很短的时间活动就会消失,在这种情况下它也会杀死吐司,为避免这种情况,你可以像@MehmetSeçkin的回答一样调用activity.getApplicationContext()

答案 2 :(得分:1)

使用以下其中一项

Toast.makeText(getApplicationContext(), " Hello World", Toast.LENGTH_SHORT).show();

        Toast.makeText(getBaseContext(),"please Create your Account First", Toast.LENGTH_SHORT).show();


      Toast.makeText(GameActivity.this,"please Create your Account First", Toast.LENGTH_SHORT).show();

答案 3 :(得分:0)

使用:

Toast.makeText(getApplicationContext(), " Hello World", Toast.LENGTH_SHORT).show();

Toast.makeText(activity.this, " Hello World", Toast.LENGTH_SHORT).show();

答案 4 :(得分:0)

Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_SHORT).show();

试试这个。

答案 5 :(得分:0)

既然你问为什么;我认为您将活动参考作为Toa​​st消息的上下文,这就是它无法正常工作的原因。

如果您尝试在活动的外部中显示Toast消息,可以尝试:

Toast.makeText(activity.getApplicationContext(), " Hello World", Toast.LENGTH_SHORT).show();

或来自GameActivity

Toast.makeText(GameActivity.this, " Hello World", Toast.LENGTH_SHORT).show();

或来自MainActivity

Toast.makeText(MainActivity.this, " Hello World", Toast.LENGTH_SHORT).show();

答案 6 :(得分:0)

因为你是从课堂上调来的。你需要通过类构造函数从活动中获取上下文,否则你需要使用GetApplicationcontext()。

答案 7 :(得分:0)

确保您要测试的应用已打开通知。那就是我的故事,为什么吐司也不起作用。我一直在寻找一个直截了当的答案,而且碰巧吐司被认为是通知的一部分。有趣的东西,我一无所知。