Всплывающее сообщение Toast в Android Studio
Программирование для платформы Андроид производится с применением одноименной интегрированной среды разработки (IDE) – Android Studio. Всплывающие сообщения (месседжи, окна) можно внедрять в код при помощи Android StudioToast – это специальный класс программного комплекса.
Чтобы создать заметное пользователю окно с полезной информацией разработчики IDE под Андроид придумали класс Android Studio Toast. В процессе работы программы человек получает заранее созданный месседж, например, о том, что нужно не забыть купить продукты к праздничному столу или вызвать мастера по ремонту стиральной машинки.

Два слова о теории
Toast Notification – окно, появляющееся на дисплее гаджета, заполняющее его часть, но не блокирующее остальные приложения – пользователь имеет к ним полный доступ. Нужно для демонстрации небольших полезных сообщений.

Как это выглядит на практике
Объекты Тоаст инициализируются с применением метода Toast.makeText(), а далее вызываются методом show() для показа требуемого сообщения на экране.
Пример:
Toast toast = Toast.makeText(getApplicationContext(),
«Срочно купить продукты!» , Toast.LENGTH_SHORT);
toast.show();
Метод makeText() имеет три значения:
- контекст;
- содержание месседжа;
- количество времени показа окна.
Но программист способен изменять лишь два последних.

Указание времени показа сообщения
Изменяем длительность демонстрации окна – варианты:
- LENGTH_SHORT — (значение установлено как дефолтное) – текст появляется на дисплее и задерживается совсем недолго. Это будет соответствовать коду: private static final int SHORT_DELAY = 2000
- LENGTH_LONG — параметр для длительной демонстрации. Здесь получим: private static final int LONG_DELAY = 3500
Числовые значения 3500 и 2000 – это время в миллисекундах, то есть - 2 и 3,5 секунд. Другие длительности задать не удастся.

Как задать позицию на дисплее
Если ничего не менять, то окно с заданным текстом появится внизу дисплея. Задать иные свойства можно при использовании setGravity(int, int, int). Тут определяются 3 значения:
- обычная постоянная для демонстрации объектов в рамка контейнера (пример: GRAVITY.CENTER или GRAVITY.TOP);
- число, определяющее координату «X»;
- значение «Y».
Пример: месседж должен возникнуть посередине дисплея:
toast.setGravity(Gravity.CENTER, 0, 0);
Координаты «Х» и «У» могут принимать числовые значения со знаками: плюс или минус – соответственно окно так же будет смещаться относительно центра.

Немного о методе show()
Обязательно добавлять в код вызов show() для отображения месседжа на дисплее. В противном случае редактор IDE обратит внимание на ошибку, подсвечивая соответствующую строку. Если разработчик подведёт курсор к ней, то увидит сообщение о том, что нужно добавить строку с show ().
Образец кода
Для тренировки можно сделать другой проект или же открыть имеющийся.
Шаг 1. Вводим новый элемент «Кнопка» на активный дисплей, присваиваем ему значение: «Показать Toast».
Шаг 2. Записываем:
public void showToast(View view) {
//здесь создадим текст с требуемым содержимым
Toast toast = Toast.makeText(getApplicationContext(),
"Срочно купить продукты!",
Toast.LENGTH_SHORT); // Это значит, что сообщение будет висеть минимум времени.
toast.setGravity(Gravity.CENTER, 0, 0); // Тут координаты – мессендж возникнет по центру.
toast.show(); // Обязательная строка вызова.
}
Шаг 3. Проверка: если запустить активный проект и кликнуть по кнопке, то на пару секунд появится окно с нашим текстом и пропадёт само собой.

Вставляем изображение
Метод setView() позволяет внедрить фото или другое изображение в наше окно.
Перемещаем нужную картинку в папку «res/drawable». Это будет новый доступный для IDE ресурс. Если имя рисунка pic.jpg, то в программном коде он станет доступным при написании: R.drawable.pic.
Вот весь код вызова Тоаст с нашей сохранённой картинкой:
public void showToast(View view) {
Toast toast3 = Toast.makeText(getApplicationContext(),
R.string.catfood, Toast.LENGTH_LONG);
toast3.setGravity(Gravity.CENTER, 1, -1);
LinearLayout toastContainer = (LinearLayout) toast3.getView();
ImageView catImageView = new ImageView(getApplicationContext());
catImageView.setImageResource(R.drawable.pic); // Вызов нашего рисунка.
toastContainer.addView(catImageView, 0);
toast3.show();
}
Теперь в Android Studio сообщение Toast при запуске отобразится с нашей сохранённой картинкой.

Программирование своих всплывающих сообщений
Допускается подготовка собственных контейнеров и внедрение их в объекты Toast посредством методов setView().
Иногда стандартного месседжа недостаточно для создания пользовательского приложения, тогда программист может применить особый дизайн разметки будущего окошка. Чтобы получить структурные данные из ХМL и работать с ними, в коде используют классы под названием «LayoutInflater» и их методы: getLayoutInflater() / getSystemService(), они способны вернуть LayoutInflater. Потом посредством инициации inflate() получаются блоки view.

Применение месседжей
Как часть графического движка Android Studio всплывающее сообщение должно вызываться в потоках графического интерфейса пользователя, сохраняется опасность появления межпотоковых исключений. В создании кода объекты Handler применяются, чтобы месседжи Toast вызывались в потоках GUI.
Дополнительная информация
При программировании следует указывать информацию о контексте в параметре makeText(). Если возникают проблемы – странное поведение месседжа или текста внутри него – следует прибегать к методу getApplicationContext().
Благодаря указанным строкам кода можно с лёгкостью генерировать в Android Studio вывод сообщения для пользователя.