频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android Toast 封装,避免Toast消息覆盖,替换系统Toast最好用的封装
2013-11-27 10:25:07           
收藏   我要投稿
Android Toast 封装,避免Toast消息覆盖,无阻塞,等强大功能

 

 

import android.content.Context;  
import android.os.Handler;  
import android.os.Looper;  
import android.widget.Toast;  
  
/** 
 * Toast工具类 
 * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
 * @version 2012-5-21 下午9:21:01 
 */  
public class ToastUtils {  
    private static Handler handler = new Handler(Looper.getMainLooper());  
    private static Toast toast = null;  
    private static Object synObj = new Object();  
  
    /** 
     * Toast发送消息,默认Toast.LENGTH_SHORT 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:13:10 
     * @param act 
     * @param msg 
     */  
    public static void showMessage(final Context act, final String msg) {  
        showMessage(act, msg, Toast.LENGTH_SHORT);  
    }  
      
    /** 
     * Toast发送消息,默认Toast.LENGTH_LONG 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:13:10 
     * @param act 
     * @param msg 
     */  
    public static void showMessageLong(final Context act, final String msg) {  
        showMessage(act, msg, Toast.LENGTH_LONG);  
    }  
  
    /** 
     * Toast发送消息,默认Toast.LENGTH_SHORT 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:13:35 
     * @param act 
     * @param msg 
     */  
    public static void showMessage(final Context act, final int msg) {  
        showMessage(act, msg, Toast.LENGTH_SHORT);  
    }  
      
    /** 
     * Toast发送消息,默认Toast.LENGTH_LONG 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:13:35 
     * @param act 
     * @param msg 
     */  
    public static void showMessageLong(final Context act, final int msg) {  
        showMessage(act, msg, Toast.LENGTH_LONG);  
    }  
  
    /** 
     * Toast发送消息 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:14:09 
     * @param act 
     * @param msg 
     * @param len 
     */  
    public static void showMessage(final Context act, final int msg,  
            final int len) {  
        new Thread(new Runnable() {  
            public void run() {  
                handler.post(new Runnable() {  
  
                    @Override  
                    public void run() {  
                        synchronized (synObj) {  
                            if (toast != null) {  
                                toast.cancel();  
                                toast.setText(msg);  
                                toast.setDuration(len);  
                            } else {  
                                toast = Toast.makeText(act, msg, len);  
                            }  
                            toast.show();  
                        }  
                    }  
                });  
            }  
        }).start();  
    }  
      
    /** 
     * Toast发送消息 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:14:27 
     * @param act 
     * @param msg 
     * @param len 
     */  
    public static void showMessage(final Context act, final String msg,  
            final int len) {  
        new Thread(new Runnable() {  
            public void run() {  
                handler.post(new Runnable() {  
  
                    @Override  
                    public void run() {  
                        synchronized (synObj) {  
                            if (toast != null) {  
                                toast.cancel();  
                                toast.setText(msg);  
                                toast.setDuration(len);  
                            } else {  
                                toast = Toast.makeText(act, msg, len);  
                            }  
                            toast.show();  
                        }  
                    }  
                });  
            }  
        }).start();  
    }  
  
    /** 
     * 关闭当前Toast 
     * @author WikerYong   Email:<a href="#">yw_312@foxmail.com</a> 
     * @version 2012-5-22 上午11:14:45 
     */  
    public static void cancelCurrentToast() {  
        if (toast != null) {  
            toast.cancel();  
        }  
    }  
}  

 

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 消息 最好 系统
上一篇:解决eclipse中 Android SDK Manager 图标不见的方法
下一篇: Android 如何使Android应用程序获取系统权限 M
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站