Всплывающее сообщение Toast в Android Studio

18 Апреля 2019

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

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

Android Studio Toast: всплывающее сообщение

Два слова о теории

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

android studio toast

Как это выглядит на практике

Объекты Тоаст инициализируются с применением метода Toast.makeText(), а далее вызываются методом show() для показа требуемого сообщения на экране.

Пример:

Toast toast = Toast.makeText(getApplicationContext(),

«Срочно купить продукты!» , Toast.LENGTH_SHORT);

toast.show();

Метод makeText() имеет три значения:

  • контекст;
  • содержание месседжа;
  • количество времени показа окна.

    Но программист способен изменять лишь два последних.

    android studio всплывающее сообщение

    Указание времени показа сообщения

    Изменяем длительность демонстрации окна – варианты:

    • LENGTH_SHORT — (значение установлено как дефолтное) –  текст появляется на дисплее и задерживается совсем недолго. Это будет соответствовать коду: private static final int SHORT_DELAY = 2000
    • LENGTH_LONG — параметр для длительной демонстрации. Здесь получим: private static final int LONG_DELAY = 3500

    Числовые значения 3500 и 2000 – это время в миллисекундах, то есть -  2 и 3,5 секунд. Другие длительности задать не удастся.

    android studio сообщение toast

    Как задать позицию на дисплее

    Если ничего не менять, то окно с заданным текстом появится внизу дисплея. Задать иные свойства можно при использовании setGravity(int, int, int). Тут определяются 3 значения:

    • обычная постоянная для демонстрации объектов в рамка контейнера (пример: GRAVITY.CENTER или GRAVITY.TOP);
    • число, определяющее координату «X»;
    • значение «Y».

    Пример: месседж должен возникнуть посередине дисплея:

    toast.setGravity(Gravity.CENTER, 0, 0);

    Координаты «Х» и «У» могут принимать числовые значения со знаками: плюс или минус – соответственно окно так же будет смещаться относительно центра.

    android studio вывод сообщения

    Немного о методе 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. Проверка: если запустить активный проект и кликнуть по кнопке, то на пару секунд появится окно с нашим текстом и пропадёт само собой.

    Android Studio Toast: всплывающее сообщение

    Вставляем изображение

    Метод 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 при запуске отобразится с нашей сохранённой картинкой.

    Android Studio Toast: всплывающее сообщение

    Программирование своих всплывающих сообщений

    Допускается подготовка собственных контейнеров и внедрение их в объекты Toast посредством методов setView().

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

    Android Studio Toast: всплывающее сообщение

    Применение месседжей

    Как часть графического движка Android Studio всплывающее сообщение должно вызываться в потоках графического интерфейса пользователя, сохраняется опасность появления межпотоковых исключений. В создании кода объекты Handler применяются, чтобы месседжи Toast вызывались в потоках GUI.

    Дополнительная информация

    При программировании следует указывать информацию о контексте в параметре makeText(). Если возникают проблемы – странное поведение месседжа или текста внутри него – следует прибегать к методу getApplicationContext().

    Благодаря указанным строкам кода можно с лёгкостью генерировать в Android Studio вывод сообщения для пользователя.

    Автор статьи
    Нет комментариев

    Авторизоваться или зарегистрироваться для комментирования.