Display two Toast messages at once?

gotube picture gotube · Mar 23, 2014 · Viewed 8.9k times · Source

I would like one Toast message to display in one location and a different Toast message to display in another location simultaneously.

  1. Multiple Toast messages seem to always queue and display in order. Is it possible to show both messages at the same time?

  2. Is there a workaround that at least gives that appearance and doesn't involve messing with the activity layout?

Edit: It seems the answer to the first question is no, it's not possible. How about a workaround? A solution for me would include something that appears "over" the app like a Toast and doesn't interfere with user interaction with the app (so, not an AlertDialogue or anything that calls onPause() etc.).

Answer

Firzen picture Firzen · Jun 27, 2015

As Jay Patel said, it cannot be done. But there IS workaround! You can create custom Toast which can contain any View. That means you can have layout with two messages on different places inside one toast.

You can find how to do that here, or you can start directly with this snippet:

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
                           (ViewGroup) findViewById(R.id.toast_layout_root));

TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("This is a custom toast");

Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();