Временное всплывающее окно в Android

Я создаю подходящую игру для Android, и когда пользователь получает совпадение, должно появиться диалоговое окно с надписью «Match!» Однако я не могу понять, как это сделать. Если я использую Thread.currentthread (). Sleep, диалоговое окно никогда не появляется.

android.app.AlertDialog a = new android.app.AlertDialog.Builder(match.this).setTitle("Match!").show();
Thread.currentthread().sleep(1000);
a.dismiss();

Ничего не происходит - программа просто зависает на секунду. Я бы хотел, чтобы он всплывал всего на 1 секунду, или, если есть другой тип всплывающих окон, это тоже было бы хорошо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
12
0
6 601
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы пытаетесь показать текстовое сообщение во всплывающем окне на короткий период времени на экране?

Для такого рода предупреждений отлично подходят тосты:

Toast.makeText(this, "Match!", Toast.LENGTH_LONG).show();

Это то, что вы ищете? Вот документ Java.

Я тоже это сделал и получил, но есть ли способ отобразить его в центре приложения или в другом месте?

BIBEKRBARAL 19.02.2010 14:23

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

В этом случае проще всего использовать тост, как предлагалось на предыдущем плакате. Еще пара способов выполнить работу, которую вы хотите выполнить в будущем

  • Таймеры Java. Действие произойдет
    в другом потоке, поэтому вам нужно будь осторожен, что ты делаешь в графическом интерфейсе
  • В представлениях есть метод postDelayed (Runnable action, long delayMillis), который вызовет выполнение Runnable в потоке пользовательского интерфейса примерно через delayMillis.

Другие вопросы по теме