2012-04-23 68 views
3

我在我的活動中有一個按鈕。如果我點擊Show Toast。但是當我再次點擊Toast顯示。所以當我點擊很多次這個Toast會出現很長時間。當第一次消失時,接下來是顯示等等。當我再次點擊按鈕時,我可以做什麼,第一次吐司將被隱藏。吐司和持續時間

+1

檢查[這](http://stackoverflow.com/questions/5295765/toast-issue-in-android/5295800#5295800) – silwar 2012-04-23 10:42:56

+0

我怎麼能確認我的敬酒還是在屏幕上? – edi233 2012-04-23 11:40:25

+0

當你在屏幕上顯示吐司開始計時器,如果你正在呼叫顯示吐司再次檢查計時器,它與持續時間相同。如果它仍然在運行意味着烤麪包仍然在屏幕上 – silwar 2012-04-23 11:42:39

回答

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秒的持續時間) – 2012-08-28 18:59:46

+0

In'Toast'你沒有持續時間... – pixel 2013-05-16 15:45:48

+0

拋出一個運行時異常:** java.lang.RuntimeException:這個Toast不是用Toast.makeText()創建的** – 2015-03-14 15:04:25

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(); 
}