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

Очень полезная функция, которая требуется достаточно часто – это toast.

Это такое небольшое сообщение внизу экрана. Текущая активность остается видимой и активной. Сообщение занимает столько места, сколько занимает его текст. Исчезает после установленного промежутка времени.

Вот как оно выглядит:

Toast удобно использовать когда не требуется ответ от пользователя. Часто оно уведомляет о происходящем в приложении действии или некоторые-подсказки, уведомления. Если же требуется ответ пользователя, то можно использовать диалоговое окно, о нем будет отдельный разговор.

 

Основа основ.

 

Как создать toast:

Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

Выглядит просто – создаем экземпляр и передаем в него три параметра: контекст, текст сообщения, продолжительность времени отображения.

Можно записать короче:

Toast.makeText(context, text, duration).show();

Пример:

Toast.makeText(getApplicationContext(), "This is toast", Toast.LENGTH_SHORT).show();

Чуть подробнее. Контекст можно получить и по-другому. Например nameActivity.this (где nameActivity – имя активности), продолжительность времени может быть как стандартной:

int Toast.LENGTH_SHORT = 2000;

int Toast.LENGHT_LONG = 3500;

то есть это соответственно 3.5 секунды и 2 секунды; или можно задать время самостоятельно в переменной типа int.

 

Усложним

 

Если этих знаний недостаточно, то подробнее.

Конструктор класса выглядит следующим образом:

Toast(Context context)

Методы класса

void cancel() Прекратить отображение toast, или не отображать вовсе если отображение еще не началось
int getDuration() Получить продолжительность времени отображения
int getGravity() Получить расположение Toast на экране
float getHorizontalMargin() Вернуть отсуп по горизонтали (margin)
float getVerticalMargin() Вернуть отсуп по вертикали (margin)
View getView() Вернуть Вьюшку
int getXOffset() Получить смещение Х (речь о гравитации окна)
int getYOffset() Получить смещение У (речь о гравитации окна)
staticToast makeText(Context context, int resId, int duration) Создать простой Toast с текстом из ресурса (R.string.nameRes)
staticToast makeText(Context context, CharSequence text, int duration) Создать простой Toast с текстом
void setDuration(int duration) Задать продолжительность времени отображения
void setGravity(int gravity, int xOffset, int yOffset) Задать положение gravity
void setMargin(float horizontalMargin, float verticalMargin) Задать margin (отступы по краям)
void setText(int resId) Обновить текст в Toast , который ранее был задан  в методе makeText()
void setText(CharSequence s) Обновить текст в Toast , который ранее был задан  в методе makeText()
void setView(View view) установить Вьюшку
void show() Показывает Toast заданное количество времени

 

Что из этого полезного?

 

Два основных примера – это позиционирование Toast

toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

(это установит гравитацию в левый верхний угол, нули рядом можно заменить на числа и подтянуть влево или вправо)

и добавление картинки в Toast

 xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/custom_toast_container"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="8dp"
              android:background="#DAAA"
              >
     android:src="@drawable/droid"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginRight="8dp"
               />
     android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textColor="#FFF"
              />

тут немного сложнее. Сначала в отдельном файле xml описываем внешний вид Layout. Затем этот layout задаем нашему Toast.

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
                (ViewGroup) findViewById(R.id.custom_toast_container));
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();

Вот и все сложности

 

Вывод

Если требуется вывести только текст, то смело используем makeText()

Toast.makeText(getApplicationContext(), "This is toast", Toast.LENGTH_SHORT).show();

Если задача сложнее и будет макет, тогда создаем макет, вызываем конструктор и используем setView().

You may also like...

10 комментариев

  1. Rezeptfrei Viagra Apotheke Viagra A Lausanne Last Longer During Intercourse Naturally viagra online pharmacy Zithromax Azithromycin Tablets Comprar Priligy Online Espana

  2. Venta Viagra Barata Buy Amoxicillin Otc Australia Cialis 20mg Lilly Preis cialis Cialis Per Nachnahme Shop Keflex Out Of Date

  3. Priligy Venta Online Cialis Jus Levitra Online No Prescription

  4. Propecia Tabletten Nebenwirkungen Anything Otc Like Viagra Or Cialis Propecia Rae cialis 20mg for sale Levitra Louer

  5. Amoxil Natural Replacement Zithromax Vs Amoxicillin Can I Buy Doxycycline Over The Counter viagra Clobetasol Internet Get Levitra Online Discount Isotretinoin Best Buy No Prescription Needed Store Nebraska

  6. Prix Cytotec Pharmacie Levitra Uk Generic Buy Accutane Canada

  7. Cialis Professional Compared To Cialis viagra Stieva A Gel 0.025

  8. Cheap Ciallis 20 Mg Discount Elocon C.O.D. Can I Purchase With Free Shipping Cephalexin Vs Clindamycin For Root Infection viagra Propecia For Sale Online Finasteride Cheap Walmart Prescription Drug Plan

  9. Canadian Pharmacy Online Drugstore Priligy Fachinformation cheapest cialis Olanzapine For Sale Next Day Delivery

  10. Buy Silagra In India Cephalexin Indications And Uses viagra Impact Levitra Kamagra Osterreich

Добавить комментарий

Ваш e-mail не будет опубликован.

Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.
Регистрация не требуется. В качестве логина укажите рабочую почту, в качестве пароля - пароль от компьютера.