In Android, a Toast is a simple UI element that can be used to give contextual feedback to a user.
To display a simple Toast message, we can do the following.
// Declare the parameters to use for the Toast
Context context = getApplicationContext();
// in an Activity, you may also use "this"
// in a fragment, you can use getActivity()
CharSequence message = "I'm an Android Toast!";
int duration = Toast.LENGTH_LONG; // Toast.LENGTH_SHORT is the other option
// Create the Toast object, and show it!
Toast myToast = Toast.makeText(context, message, duration);
myToast.show();
Or, to show a Toast inline, without holding on to the Toast object you can:
Toast.makeText(context, "Ding! Your Toast is ready.", Toast.LENGTH_SHORT).show();
IMPORTANT: Make sure that the show()
method is called from the UI thread. If you're trying to show a Toast
from a different thread you can e.g. use runOnUiThread
method of an Activity
.
Failing to do so, meaning trying to modify the UI by creating a Toast, will throw a RuntimeException
which will look like this:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
The simplest way of handling this exception is just by using runOnUiThread: syntax is shown below.
runOnUiThread(new Runnable() {
@Override
public void run() {
// Your code here
}
});