67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678

Toast.makeText. Параметр context

03.03.2018, 08:46. Показов 2286. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
public static void MyFunction(Context context, int param1, int param2) {
//
//
//
Toast.makeText(context, "qwerty", Toast.LENGTH_LONG).show();
}
У меня служебная функция вызывает Toast.makeText() и эта функция вызывается из всех Activity.
Для вызова Toast в эту ф-ю каждый раз передаю ссылку на текущую Activity.
Можно ли обойтись без этого параметра и вызывать Toast со ссылкой на MainActivity?
Не будет ли каких-либо проблем?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2018, 08:46
Ответы с готовыми решениями:

Метод makeText в Toast - ошибка
Здравствуйте, помогите плз, новичку. В строке 81 - Toast.makeText(this, "Нажата кнорка Ok",Toast.LENGTH_LONG).show(); ...

Ошибка метода makeText в Toast (AIDE)
Здравствуйте. Редактирую код в AIDE на Android-смартфоне. Выскакивает вот такая ошибка: Вот сам код: package...

Toast.MakeText как сделать одновременно появляющимися
В программе много Toast.MakeText(this, "Finish() Market01", ToastLength.Short).Show(); Все они появляются один за другим, когда первый...

9
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
03.03.2018, 21:22
Вроде как любое активити потомок Context. Поэтому справедливо писать
Toast.makeText(Имя_активити.this, "qwerty", Toast.LENGTH_LONG).show(); Точно не помню, но вроде Toast в статических методах не работает.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
03.03.2018, 22:02
Зачем выносить куда-то строчку UI кода?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
03.03.2018, 23:23  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Зачем выносить куда-то строчку UI кода?
Я кастомизировал Toast и использую его во всех активити.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
03.03.2018, 23:33
Ну и, аля билдер лежит в другом классе, контекст ему не нужен, а показываешь тост свой в активити.
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
03.03.2018, 23:39  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Ну и, аля билдер лежит в другом классе, контекст ему не нужен, а показываешь тост свой в активити.
Не понял. Безопасно ли передавать в Toast контекст MainActivity, вызывая ф-ю из других активити?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
06.03.2018, 19:08
Slon747, самый лучший выход - сделать BaseActivity, унаследовать от нее все активити и создать в ней protected метод с показом тоста. В качестве контекста в данном случае можно использовать this. Все активити смогут спокойно вызывать этот метод без всяких опасностей и т.п..
1
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
06.03.2018, 20:04  [ТС]
Цитата Сообщение от Spelcrawler Посмотреть сообщение
самый лучший выход - сделать BaseActivity, унаследовать от нее все активити и создать в ней protected метод с показом тоста. В качестве контекста в данном случае можно использовать this. Все активити смогут спокойно вызывать этот метод без всяких опасностей и т.п..
Спасибо.
Но ведь в моем случае MainActivity всегда существует. Чисто теоретически, возможна какая-либо проблема?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
06.03.2018, 20:06
Цитата Сообщение от Slon747 Посмотреть сообщение
Но ведь в моем случае MainActivity всегда существует
Андроид не гарантирует ничего, особенно, что активити существует) Тем более вы хотите вызывать тост из других активити - MainActivity не на первом плане - может быть удалена.
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.03.2018, 20:39
создаем класс наследник от Application (если он есть то добавляем туда только инициализацию)
Java
1
2
3
4
5
6
7
8
9
10
import android.app.Application;
 
public class MyApp extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
        Show.init(this);
    }
}
прописываем этот класс в манифесте
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:name="MyApp"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
    </application>
строка android:name="MyApp"

сам класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.widget.Toast;
 
import java.lang.ref.WeakReference;
 
public class Show {
 
    private final WeakReference<Context> ref;
    private static Show instance;
 
    private Show(Context context) {
        ref = new WeakReference<>(context);
    }
 
    public static void init(@NonNull Context context) {
        instance = new Show(context);
    }
 
    public static void shortToast(@StringRes int id) {
        if (instance == null || instance.ref.get() == null) return;
        Toast.makeText(instance.ref.get(), id, Toast.LENGTH_SHORT).show();
    }
 
    public static void longToast(@StringRes int id) {
        if (instance == null || instance.ref.get() == null) return;
        Toast.makeText(instance.ref.get(), id, Toast.LENGTH_LONG).show();
    }
 
    public static void shortToast(String text) {
        if (instance == null || instance.ref.get() == null) return;
        Toast.makeText(instance.ref.get(), text, Toast.LENGTH_SHORT).show();
    }
 
    public static void longToast(String text) {
        if (instance == null || instance.ref.get() == null) return;
        Toast.makeText(instance.ref.get(), text, Toast.LENGTH_LONG).show();
    }
}
и в любом месте в любом классе показываем тосты
Show.longToast("ололо азаза");
все

на Котлине класс Show вообще скомкивается до неприлично малого размера, но это другая история
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2018, 20:39
Помогаю со студенческими работами здесь

Toast.js
Приветствую. Столкнулся с такой проблемой: Есть страница, на ней n-количество полей для ввода. Есть кнопка &quot;сформировать...

Toast duration
Подскажите как задать свое время Добавлено через 1 минуту только вот мне надо большое время задать например минута

Toast trouble
Все Доброго времени суток! Начал учить андроид по книге, там приводился код для создания кастомного тоста, код написал точь в точь , но на...

Не выводит Toast
всем привет. есть код: Toast.makeText(c, &quot;Start indexing...&quot;, Toast.LENGTH_LONG).show(); while...

Toast Notification
Подскажите, какую команду нужно дописать чтобы скрыть уведомление. $app =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru