Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 如何解決android Toast重復顯示

如何解決android Toast重復顯示

編輯:關於Android編程

Toast是一種簡易的消息提示框,它無法獲取焦點,按設置的時間來顯示完以後會自動消失,一般用於幫助或提示。

先給大家分享下我的解決思路:

不用計算Toast的時間之類的,就是定義一個全局的成員變量Toast, 這個Toast不為null的時候才去make,否則直接setText.為了按返回鍵後立即使Toast不再顯示,重寫父類Activity的onBackPressed()方法裡面去cancel你的Toast即可.

代碼:

private Toast mToast; 
public void showToast(String text) { 
if(mToast == null) { 
mToast = Toast.makeText(TestActivity.this, text, Toast.LENGTH_SHORT); 
} else { 
mToast.setText(text); 
mToast.setDuration(Toast.LENGTH_SHORT); 
} 
mToast.show(); 
} 
public void cancelToast() { 
if (mToast != null) { 
mToast.cancel(); 
} 
} 
public void onBackPressed() { 
cancelToast(); 
super.onBackPressed(); 
} 

下面介紹下解決Android Toast重復顯示等待時間過長的問題

當觸發點擊事件顯示toast信息時,如果設置了時間長短類型為LENGTH_LONG,雖然回到後台運行,但是依然會顯示toast信息,尤其是當連續點擊時,toast就會排隊等待直到所有toast顯示完畢,這種界面的用戶體驗是很差的。

→ 1 toast 2 toast 3 toast 4 toast 5 toast →

為了避免這種問題,可以再toast信息顯示的地方加個判斷,方法如下:

private Context mcontext;
private Toast mtoast;
if(mtoast!=null)
{
mtoast.setText(R.string.neterror); 
}
else
{
/*
* 第一個參數:當前的上下文環境,用this或getApplicationContext()表示。
* 第二個參數:顯示的字符串,用R.string表示。
* 第三個參數:顯示的時間長短。用LENGTH_LONG(長)或LENGTH_SHORT(短)表示,也可以用毫秒。
*/
mtoast=Toast.makeText(mcontext,R.string.neterror, Toast.LENGTH_SHORT);
} 
mtoast.show(); //顯示toast信息

另外,還可以通過設置Toast的其他屬性來設計自己風格的Toast消息框。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved