How to create Toast messages in Android?

Toasts in Android are used to show Notification within an Activity. You may be knowing what alert messages are in HTML. Using JavaScript alert() function we can Alert the user about something using a popup message, the user sees the message and clicks the OK button to dismiss the dialog.

Toast messages in Android Programming are similar but they are terminated/dismissed by itself (we do not have any buttons). We need to set a time period for which the message has to be displayed when the time is reached the message fades away, it is usually shown at the bottom of the Activity page.

Toast in Android Example
Toast in Android Example

Some examples where you can an Android Toast Message be helpful:

Example 1: We have an Email application and the user deletes an email, then when that email is been deleted we can display a Toast message saying "Email has been deleted"

Example 2: At login, if the email id or password is incorrect we can display a toast message saying "Invalid id or password"

Example 3: When a message has been sent, we can notify the user "Message sent" using toast messages.

Let's see how Toasts works:

The above code snippet is the structure of creating a Toast object and setting a "Text" message and its "Duration"

makeText() is the method we have to use which takes in three parameters, Let's see each of these parameters one-by-one,

  1. Context:

    It is the Application context.

    You can get the Application context using, Context context = getApplicationContext();

    Another way of getting Context is referring to the Activity class that you are displaying the Toast message. I suppose the Activity class is MainActivity where we want to display the message,

    Toast toast = Toast.makeText(MainActivity.this, text , Toast.LENGTH_SHORT);;

    You can also refer to the class by simply referring "this"

    Toast toast = Toast.makeText(this, text , duration);;
  2. Text :

    It is the string message that you want the toast to display on the Android Activity screen.

    String toastTextMsg = "Hello, welcome to Code2care!";
    Toast toast = Toast.makeText(MainActivity.this, toastTextMsg , Toast.LENGTH_SHORT);;

    Note: If any of the resources is not found then you will get a Resources.NotFoundException exception.

  3. Duration :

    It is the time period in milliseconds for which the toast message will be displayed on the screen. The toast message be visible as a fade-in effect and will be dismissed automatically when this time duration has elapsed with a fade-out effect.

    There are two constants for duration time you can use from the Toast class

    1. Toast.LENGTH_SHORT : This will display the toast for a short period of time.
    2. Toast.LENGTH_LONG : This will display the toast for a long period of time.

    Note that you can only have these two values for the duration of toast message, If you define a custom duration as Integer value you will get a warning message in the gutter area saying,

    Toast.makeText(this, "Hello", 5000);;

    ⛏️ "Expected duration Toast.LENGTH_SHORT or Toast.LENGTH_LONG, a custom duration value is not supported"

    Actual duration of these constants are 3.5 seconds for LONG_DELAY and 2 seconds for SHORT_DELAY,

    private static final int LONG_DELAY = 3500; // 3.5 seconds
    private static final int SHORT_DELAY = 2000; // 2 seconds

    You can display toast as one statement too,

    Toast.makeText(this, "Hello, this is a android toast message!", Toast.LENGTH_LONG).show();

    Changing the Position of Toast message :

    By default the toast message is displayed at the bottom of an Activity screen aligned vertically.

    If you want to display the toast message at the different position then you can use setGravity() method.

    setGravity(int, int, int) :

    To get a location at which the notification should appear on the screen it has 3 parameters,

  1. Gravity constants :

    You can set the position of toast message using gravity constants,

  2. x-position offset

    If you want to move the toast message towards the right side, increase this value.

  3. y-position offset

    If you want to move the toast message towards the left side, increase this value.

    Example : toast.setGravity(Gravity.TOP, 0,0);

Toast Example : Java Code

package com.example.toastexample;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
    protected void onCreate(Bundle savedInstanceState) {
        // Toast Example
        Toast toast = Toast.makeText(this,
                "Hello, this is a android toast message!", Toast.LENGTH_LONG);
        toast.setGravity(Gravity.TOP, 4, 5);;
Toast at the top of screen.png
Toast at the top of screen.png