如何解決android Toast重復(fù)顯示
Toast是一種簡易的消息提示框,它無法獲取焦點(diǎn),按設(shè)置的時(shí)間來顯示完以后會(huì)自動(dòng)消失,一般用于幫助或提示。
先給大家分享下我的解決思路:
不用計(jì)算Toast的時(shí)間之類的,就是定義一個(gè)全局的成員變量Toast, 這個(gè)Toast不為null的時(shí)候才去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ù)顯示等待時(shí)間過長的問題
當(dāng)觸發(fā)點(diǎn)擊事件顯示toast信息時(shí),如果設(shè)置了時(shí)間長短類型為LENGTH_LONG,雖然回到后臺(tái)運(yùn)行,但是依然會(huì)顯示toast信息,尤其是當(dāng)連續(xù)點(diǎn)擊時(shí),toast就會(huì)排隊(duì)等待直到所有toast顯示完畢,這種界面的用戶體驗(yàn)是很差的。
→ 1 toast 2 toast 3 toast 4 toast 5 toast →
為了避免這種問題,可以再toast信息顯示的地方加個(gè)判斷,方法如下:
private Context mcontext;
private Toast mtoast;
if(mtoast!=null)
{
mtoast.setText(R.string.neterror);
}
else
{
/*
* 第一個(gè)參數(shù):當(dāng)前的上下文環(huán)境,用this或getApplicationContext()表示。
* 第二個(gè)參數(shù):顯示的字符串,用R.string表示。
* 第三個(gè)參數(shù):顯示的時(shí)間長短。用LENGTH_LONG(長)或LENGTH_SHORT(短)表示,也可以用毫秒。
*/
mtoast=Toast.makeText(mcontext,R.string.neterror, Toast.LENGTH_SHORT);
}
mtoast.show(); //顯示toast信息
另外,還可以通過設(shè)置Toast的其他屬性來設(shè)計(jì)自己風(fēng)格的Toast消息框。
- Android Toast的用法總結(jié)(五種用法)
- Android使用Toast顯示消息提示框
- Android中使用Toast.cancel()方法優(yōu)化toast內(nèi)容顯示的解決方法
- Android控件系列之Toast使用介紹
- android之自定義Toast使用方法
- Android 5.0以上Toast不顯示的解決方法
- Android開發(fā)技巧之永不關(guān)閉的Toast信息框(長時(shí)間顯示而非系統(tǒng)關(guān)閉)
- 超簡單實(shí)現(xiàn)Android自定義Toast示例(附源碼)
- android自定義Toast設(shè)定顯示時(shí)間
- Android9.0上針對Toast的特殊處理圖文詳解
相關(guān)文章
Android實(shí)現(xiàn)多進(jìn)程并發(fā)控制的兩種方案
當(dāng)一個(gè)App中存在多個(gè)進(jìn)程時(shí)例如存在?主進(jìn)程,輔進(jìn)程兩個(gè)進(jìn)程,兩個(gè)進(jìn)程都會(huì)去向A文件中寫入數(shù)據(jù),但是我們業(yè)務(wù)中希望每次僅允許有一個(gè)進(jìn)程向A文件寫入內(nèi)容,所以本文給大家介紹了Android實(shí)現(xiàn)多進(jìn)程并發(fā)控制的兩種方案,需要的朋友可以參考下2025-04-04
Android App中自定義View視圖的實(shí)例教程
這篇文章主要介紹了Android App中自定義View視圖的實(shí)例教程,詳細(xì)講解了如何在創(chuàng)建View中定義各種鎖需要的樣式屬性,需要的朋友可以參考下2016-04-04
Android6.0獲取動(dòng)態(tài)權(quán)限代碼示例
這篇文章主要介紹了Android6.0以上獲取動(dòng)態(tài)權(quán)限代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法
這篇文章主要介紹了Android使用GPS獲取用戶地理位置并監(jiān)聽位置變化的方法,實(shí)例分析了Android編程中GPS定位的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2015-12-12
Android中實(shí)現(xiàn)布局背景模糊化處理的方法
這篇文章主要介紹了Android中實(shí)現(xiàn)布局背景模糊化處理的方法,需要的朋友可以參考下2015-04-04
淺談onTouch先執(zhí)行,還是onClick執(zhí)行(詳解)
onTouch先執(zhí)行,還是onClick執(zhí)行?下面小編就為大家?guī)硪黄獪\談onTouch先執(zhí)行,還是onClick執(zhí)行(詳解)。希望對大家有所幫助。一起跟隨小編過來看看吧2017-03-03
使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖
折線圖是Android開發(fā)中經(jīng)常會(huì)碰到的效果,但由于涉及自定義View的知識(shí),對許多剛?cè)腴T的小白來說會(huì)覺得很高深,下面這篇文章主要給大家介紹了關(guān)于如何使用Android原生WebView+Highcharts實(shí)現(xiàn)可左右滑動(dòng)的折線圖的相關(guān)資料,需要的朋友可以參考下2022-05-05

