2017-02-09 3 views
0

В моей заявке на Android пользователю нужно нажать кнопку, и каждый раз, когда нажимается кнопка, появляется тост, говорящий «вы нажали n раз», но если пользователь несколько раз подряд нажимает тосты слишком медленны, и они появляются один за другим.Android тосты, показывающие время

public void onClick(View v) 
{ 
    n++; 
    Toast.makeText(MainActivity.this, "You have tapped "+n+" times", Toast.LENGTH_SHORT).show(); 
} 

Есть ли способ «удалить» все старые тосты, чтобы показать только последний?

+0

Держите ссылку на ваш объект Toast и вызвать .cancel() к нему. [Toast.cancel()] (https://developer.android.com/reference/android/widget/Toast.html#cancel()) – ElegyD

ответ

3

Вместо того, чтобы новый Toast каждый раз, сохранить свой экземпляр и обновить текст

mToast.setText("newMessage"); 

Полный пример: How to change text in a Toast Notification dynamically while it's being displayed?

+0

Не знал, что вы можете это сделать. И я подумал, что у меня есть тема «Тост», довольно истощенная. – FWeigl

+0

Рад, что вы сегодня что-то узнали;) – Stefan

1

Держите ссылку на тост и отклоните его.

Toast toast; 

public void onClick(View v) 
{ 
    if (toast != null) toast.dismiss() 
    n++; 
    toast = Toast.makeText(MainActivity.this, "You have tapped "+n+" times", Toast.LENGTH_SHORT); 
    toast.show() 
} 
Смежные вопросы