Временное всплывающее окно в Android - PullRequest
11 голосов
/ 18 января 2009

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

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

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

Ответы [ 2 ]

17 голосов
/ 18 января 2009

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

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

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

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

4 голосов
/ 29 мая 2009

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

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

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