Intereting Posts
Как запустить переднюю камеру с намерением? Получить всех клиентов Twitter из установленных приложений Как показать раздвижное меню в каждой операции ArrayAdapter требует, чтобы идентификатор ресурса был TextView в DialogFragment Как добавить функцию Share в приложение Android с помощью Corona SDK? Android – EditText многострочный, принудительно заполняющий высоту Android и maven: проблема с зависимостями maven в apk Android Studio + dropbox-android-sync-sdk-1.1.2 Android Speech Recognition API не работает в Android 7 Nougat Используя RxJava для проверки подлинности электронной почты, наблюдаемый дважды испускает Android: сохранить несколько экземпляров активности в фоновом стеке Ошибка: ресурс не найден, который соответствует указанному имени (в 'title' со значением '@ string / menu_settings') Как получить версию приложения Дисплей пейджингового управления с белыми точками на верхней части Android Установите приложение GooglePlay из NFC

Как немедленно заменить текущий тост на второй, не дожидаясь окончания текущего?

У меня много кнопок. И по щелчку каждого из них я показываю тост. Но пока тост загружается и отображается в поле зрения, нажимается другая кнопка, и тост не отображается до тех пор, пока тот, который отображается, не заканчивается.

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

Вы можете кэшировать текущую переменную Toast в переменной Activity, а затем отменить ее перед показом следующего тоста. Вот пример:

 Toast m_currentToast; void showToast(String text) { if(m_currentToast != null) { m_currentToast.cancel(); } m_currentToast = Toast.makeText(this, text, Toast.LENGTH_LONG); m_currentToast.show(); } 

Другой способ мгновенного обновления сообщения Toast :

 void showToast(String text) { if(m_currentToast == null) { m_currentToast = Toast.makeText(this, text, Toast.LENGTH_LONG); } m_currentToast.setText(text); m_currentToast.setDuration(Toast.LENGTH_LONG); m_currentToast.show(); }