如何解決android Toast重復顯示
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重復顯示等待時間過長的問題
當觸發(fā)點擊事件顯示toast信息時,如果設置了時間長短類型為LENGTH_LONG,雖然回到后臺運行,但是依然會顯示toast信息,尤其是當連續(xù)點擊時,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 { /* * 第一個參數(shù):當前的上下文環(huán)境,用this或getApplicationContext()表示。 * 第二個參數(shù):顯示的字符串,用R.string表示。 * 第三個參數(shù):顯示的時間長短。用LENGTH_LONG(長)或LENGTH_SHORT(短)表示,也可以用毫秒。 */ mtoast=Toast.makeText(mcontext,R.string.neterror, Toast.LENGTH_SHORT); } mtoast.show(); //顯示toast信息
另外,還可以通過設置Toast的其他屬性來設計自己風格的Toast消息框。
相關文章
Android開發(fā)之Button事件實現(xiàn)與監(jiān)聽方法總結
這篇文章主要介紹了Android開發(fā)之Button事件實現(xiàn)與監(jiān)聽方法,結合實例形式總結分析了Android開發(fā)中Button事件的兩種實現(xiàn)方法以及針對Button控件的幾種常用監(jiān)聽方法,需要的朋友可以參考下2016-01-01Android開發(fā)之DrawerLayout實現(xiàn)抽屜效果
這篇文章主要介紹了Android開發(fā)之DrawerLayout實現(xiàn)抽屜效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05Android?WebRTC?對?AudioRecord?的使用技術分享
這篇文章主要介紹了Android?WebRTC?對?AudioRecord?的使用技術分享,AudioRecord?是?Android?基于原始PCM音頻數(shù)據(jù)錄制的類,接下來和小編進入文章了解更詳細的內(nèi)容吧2022-02-02Android開發(fā)之imageView圖片按比例縮放的實現(xiàn)方法
這篇文章主要介紹了Android開發(fā)之imageView圖片按比例縮放的實現(xiàn)方法,較為詳細的分析了Android中ImageView控件的scaleType屬性控制圖片縮放的具體用法,需要的朋友可以參考下2016-01-01