I'm developing a game via Andengine for Android. I have MainActivity class and GameScene class. I use Toast messages in GameActivity. And it is working.
Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();
So I wanna use Toast messages in GameScene class. But it doesn't work. Here is the code:
Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();
I have to use "activity" instead of "this". But it doesn't work
why?
EDITED:
when I use second one, an error occurs. LogCat: http://s29.postimg.org/k8faj9mdj/Capture.png
There could be two reasons for your code to not work. It's ether your activity parameter is null or...
Short time after you showing the toast the activity is die, in that case it will kill the toast as well, to avoid this you can call
activity.getApplicationContext()
like in @Mehmet Seçkin answer.try this.
Make sure the app you are testing has notifications turned on. That was my story and why toasts weren't working either. I had gone looking for a straight answer and it just happens that toasts are considered part of the notifications. Interesting stuff, I had no clue.
use one of the following
Use:
or
You're trying to display a
Toast
in a background thread. You should do all your UI operations on the main UI thread.The exception
RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
can be a little cryptic for beginners but essentially it tells you that you're in a wrong thread.To solve it, wrap the toast to e.g.
runOnUiThread()
: