2013-01-03 57 views
0

我在整個應用程序中使用Toast對話框。但是,我注意到在切換活動後,對話框將繼續保持可見狀態,直到其計時器用完。如何在切換活動後終止Toast對話框

Toast.makeText(getApplicationContext(), R.string.toast_need_bt, Toast.LENGTH_LONG).show(); 

我用Toast.LENGTH_LONG因爲消息是漫長的,如果用戶決定讀它,則需要更長的時間選項。但是,一旦用戶使用了一次或兩次應用程序,他們將不需要閱讀吐司消息,他們將很快從活動轉移到活動。但是,即使從活動切換到活動,這些吐司對話框仍保留在屏幕上。

如果當前活動終止,是否有辦法結束所有Toast對話?

回答

1

Toast.makeText返回Toast對象。請撥打cancel()以取消該對象。 整理/離開活動 這裏當敬酒對象的檢查這個職位更多的答案對這個話題How to cancel Toast

+0

好的,所以我不能像我在問題中所顯示的那樣調用'Toast.makeText()'? 'Toast.cancel()'不會工作,因爲它不是靜態的。我需要爲每條消息創建一個單獨的「Toast」對象? – JuiCe

2

呼叫cancel()是對文檔的鏈接Toast

+0

好的,所以我不能像我在問題中顯示的那樣調用'Toast.makeText()'? 'Toast.cancel()'不會工作,因爲它不是靜態的。我需要爲每條消息創建一個單獨的「Toast」對象? – JuiCe

+0

正確。你需要一個對象來調用 – codeMagic

+0

上的'cancel()'。如果吐司時間很長,那麼你可以考慮把它們放在一個自定義的對話框或具有對話框主題的類中,並提供一個不顯示它們的複選框。正如羅伯特所建議的那樣,但我通常會像我說的那樣把它放在一個對話框中 – codeMagic

1

即使有幾個答案已經就如何使用.cancel()方法,我想幾個選項添加到該用例:

1)創建在佈局通知Cyril Mottier's Article here

2)顯示只烤X次

3)用「顯示通知」複選框創建一個對話框,允許用戶退出。

相關問題