android一天一次弹窗,Android自定义Toast,多次弹出时取消上次弹出,最后一次弹出为准...
下面是編程之家 jb51.cc 通過網絡收集整理的代碼片段。
編程之家小編現在分享給大家,也給大家做個參考。
Android的Toast用隊列管理彈出的消息,這個自定義的Toast用于頻繁彈出Toast時取消之前的toast,只顯示最后一個Toast,前后文字長度相差較大時,兩個Toast提示的切換不太理想,大神們有啥建議還望不吝賜教。
public abstract class Toast {
public static final int LENGTH_SHORT = android.widget.Toast.LENGTH_SHORT;
public static final int LENGTH_LONG = android.widget.Toast.LENGTH_LONG;
private static android.widget.Toast toast;
private static Handler handler = new Handler();
private static Runnable run = new Runnable() {
public void run() {
toast.cancel();
}
};
private static void toast(Context ctx,CharSequence msg,int duration) {
handler.removeCallbacks(run);
// handler的duration不能直接對應Toast的常量時長,在此針對Toast的常量相應定義時長
switch (duration) {
case LENGTH_SHORT:// Toast.LENGTH_SHORT值為0,對應的持續時間大概為1s
duration = 1000;
break;
case LENGTH_LONG:// Toast.LENGTH_LONG值為1,對應的持續時間大概為3s
duration = 3000;
break;
default:
break;
}
if (null != toast) {
toast.setText(msg);
} else {
toast = android.widget.Toast.makeText(ctx,msg,duration);
}
handler.postDelayed(run,duration);
toast.show();
}
/**
* 彈出Toast
*
* @param ctx
* 彈出Toast的上下文
* @param msg
* 彈出Toast的內容
* @param duration
* 彈出Toast的持續時間
*/
public static void show(Context ctx,int duration)
throws NullPointerException {
if (null == ctx) {
throw new NullPointerException("The ctx is null!");
}
if (0 > duration) {
duration = LENGTH_SHORT;
}
toast(ctx,duration);
}
/**
* 彈出Toast
*
* @param ctx
* 彈出Toast的上下文
* @param msg
* 彈出Toast的內容的資源ID
* @param duration
* 彈出Toast的持續時間
*/
public static void show(Context ctx,int resId,ctx.getResources().getString(resId),duration);
}
}
以上是編程之家(jb51.cc)為你收集整理的全部代碼內容,希望文章能夠幫你解決所遇到的程序開發問題。
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
總結
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
小編個人微信號 jb51ccc
喜歡與人分享編程技術與工作經驗,歡迎加入編程之家官方交流群!
總結
以上是生活随笔為你收集整理的android一天一次弹窗,Android自定义Toast,多次弹出时取消上次弹出,最后一次弹出为准...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android api接口封装,生成Ap
- 下一篇: android remoteviews