編輯:關於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消息框。
Android Touch事件傳遞機制解析
android系統中的每個ViewGroup的子類都具有下面三個和TouchEvent處理密切相關的方法: 1)public boolean dispatchTouc
Android學習個人筆記-百度地圖定位sdk的使用
雖然自己已經完成了百度地圖的調用,但是在使用過程中產生很多的疑問,在不斷的百度各種大神的作品後才慢慢的調試出來,所以覺得作為新手自己應該把這個過程記錄下來。尤其是自己在找
Android apk 混淆代碼(遇到的各種坑和解決方案)
以前做的手機項目,並沒有要求混淆,一直沒時間去看,等到做了平板,有混淆的需求才要硬著頭皮去看混淆到底是如何工作的,以及如何混淆驗證成功,參考一篇博客,講的非常詳細,而且每
android animation——添加購物車動畫(填坑和優化)
我們經常看到不管是某寶還是某東都有加入購物車的動畫。就是在點擊某個商品後,這個商品變成小的縮略圖移動到購物車裡面去。今天突然想著把原來做過的這麼一個動畫貼出來供大家學習。