Android Showing a Toast Message


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);;

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() {
        public void run() {
            // Your code here