Можно ли дождаться окончания тоста, чтобы возобновить метод? - PullRequest
3 голосов
/ 28 мая 2011

В одном из моих методов у меня есть toast, который появляется, если пользователь дает правильный ввод. Однако я не хочу, чтобы следующее изображение отображалось до тех пор, пока тост не закончится.

Если я использую Thread.sleep(3000), если не позволяет toast показывать, поскольку активность пользовательского интерфейса спит.

Пример того, что я пытаюсь сделать:

public void correction(){
        if(correctionBoolean == true){  
            Toast.makeText(this, "Correct!", Toast.LENGTH_SHORT).show();    
            if(Toast.time == finished){
            NextImage();}
            }

Ответы [ 3 ]

5 голосов
/ 28 мая 2011

Я не верю, что можно было бы сделать это с тостом. Если вы просто пытаетесь показать кому-то окно «Вы правы», я бы просто подумал об использовании AlertDialog с одной положительной кнопкой «Хорошо».

Можно было бы даже показать диалоговое окно без кнопок, ненадолго приостановить поток без интерфейса пользователя и затем закрыть диалоговое окно.

4 голосов
/ 28 мая 2011

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

1 голос
/ 28 мая 2011

Использовать CountDownTimer с Toast.LENGTH_SHORT в качестве времени?

public void correction(){
    if(correctionBoolean == true){  
        Toast.makeText(this, "Correct!", Toast.LENGTH_SHORT).show();    
        new CountdownTimer(Toast.LENGTH_SHORT, 1000) {

            public void onTick(long millisUntilFinished) {

        }

        public void onFinish() {
            NextImage();
        }
        }.start();

}
...