2012-04-23 2 views
3

У меня есть кнопка в моей деятельности. Если я нажму на шоу Toast. Но когда я снова нажимаю Toast show. Поэтому в результате, когда я нажимаю много раз, этот тост появится долгое время. Когда сначала исчезает, появляется следующий и т. Д. Как я могу сделать, когда я снова нажимаю кнопку, первый тост будет скрываться.Тост и продолжительность

+1

проверка [это] (http://stackoverflow.com/questions/5295765/toast-issue-in-android/5295800#5295800) – silwar

+0

как я могу проверить, если мой тост по-прежнему на экране? – edi233

+0

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

ответ

5

звонок cancel() способ скрыть тост, если уже отображается.

Посмотрите this API.

Это может быть просто названием на объекте Тост в.

Toast toast = new Toast(context); 

toast.setText("Text"); 
toast.show();//(call show() to display Toast) 
toast.cancel();//(call cancel() to hide Toast). 
+0

Когда я попытался использовать код выше, я получил сообщение об ошибке. Решение заключалось в использовании статического метода «Toast.makeText»: ** Toast.makeText (getApplicationContext(), «Text», 2000) .show(); ** (2000 - продолжительность 2 секунды) –

+0

В 'Toast' У вас нет длительности ... – pixel

+0

Выдает исключение Runtime: ** java.lang.RuntimeException: этот тост не был создан с помощью Toast.makeText() ** –

3

Добавить этот код в свою деятельность (глобальный тост) и отменить его, если хотите показать новый текст.

Toast myLovelyToastThatNeverDies; 
public void onClick(View v) { 

    if(myLovelyToastThatNeverDies==null) 
     myLovelyToastThatNeverDies = new Toast(Activity.this); 
    else 
     myLovelyToastThatNeverDies.cancel(); 
    myLovelyToastThatNeverDies.setText("my new text"); 
    myLovelyToastThatNeverDies.setDuration(anAverageDuration); 
    myLovelyToastThatNeverDies.show(); 
} 
Смежные вопросы