Skip to content

Displaying Toasts

Christopher Clement edited this page Nov 11, 2021 · 9 revisions

Overview

A toast provides simple feedback about an operation in a small popup. It only fills the amount of space required for the message and the current activity remains visible and interactive. Toasts automatically disappear after a timeout.

Toast

Simple Toast

First, instantiate a Toast object with one of the makeText() methods. This method takes three parameters: the application Context, the text message, and the duration for the toast.

// also supports Toast.LENGTH_LONG Toast.makeText(getApplicationContext(), "some message", Toast.LENGTH_SHORT).show();
// also supports Toast.LENGTH_LONG Toast.makeText(applicationContext, "some message", Toast.LENGTH_SHORT).show()

You can configure the position of a Toast. A standard toast notification appears near the bottom of the screen, centered horizontally. You can change this position with the setGravity method and specifying a Gravity constant.

Toast toast = Toast.makeText(getApplicationContext(), "some message", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.show();
val toast = Toast.makeText(applicationContext, "some message", Toast.LENGTH_SHORT) toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0) toast.show()

Custom Toast (Deprecated)

You can also create a Toast that uses a custom XML layout rather than just displaying plain text. First, simply define the XML view in res/layout in a file such as toast_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root"> <ImageView android:src="@drawable/droid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8dp" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFF" /> </LinearLayout>

Notice that the ID of the LinearLayout element is "toast_layout_root". You must use this ID to inflate the layout from the XML:

private void displayToast(String message) { // Inflate toast XML layout View layout = getLayoutInflater().inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); // Fill in the message into the textview TextView text = layout.findViewById(R.id.text); text.setText(message); // Construct the toast, set the view and display Toast toast = new Toast(getApplicationContext()); toast.setView(layout); toast.show(); }

And then you can display the custom toast using displayToast("Message");.

References

Finding these guides helpful?

We need help from the broader community to improve these guides, add new topics and keep the topics up-to-date. See our contribution guidelines here and our topic issues list for great ways to help out.

Check these same guides through our standalone viewer for a better browsing experience and an improved search. Follow us on twitter @codepath for access to more useful Android development resources.

Clone this wiki locally