您的位置:首页 > 移动开发 > Android开发

Android之Toast简单实现不循环提示

2014-06-09 11:48 483 查看
来自大牛:http://blog.csdn.net/way_ping_li/article/details/8840955

不知道各位程序猿们在项目中有没有遇到这个问题:点击一个view弹出一个Toast,我们用的方法是Toast.makeText(context, "提示", Toast.LENGTH_SHORT).show(); 但是,细心的人发现了,如果频繁的点击这个view,会发现尽管我们退出了这个应用,还是会一直弹出提示,这显然是有点点小尴尬和恼人的。下面就给大家提供两种方式解决这个问题。

1.封装了一个小小的Toast:

[java] view
plaincopy

/** 

 * 不循环提示的Toast 

 * @author way 

 * 

 */  

public class MyToast {  

    Context mContext;  

    Toast mToast;  

  

    public MyToast(Context context) {  

        mContext = context;  

  

        mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);  

        mToast.setGravity(17, 0, -30);//居中显示  

    }  

  

    public void show(int resId, int duration) {  

        show(mContext.getText(resId), duration);  

    }  

  

    public void show(CharSequence s, int duration) {  

        mToast.setDuration(duration);  

        mToast.setText(s);  

        mToast.show();  

    }  

  

    public void cancel() {  

        mToast.cancel();  

    }  

}  

2.两个直接调用的函数函数:可以放在在Activity中,在需要时直接调用showToast(String or int); 在Activity的onPause()中调用hideToast(),使得应用退出时,取消掉恼人的Toast。

[java] view
plaincopy

/** 

 * Show a toast on the screen with the given message. If a toast is already 

 * being displayed, the message is replaced and timer is restarted. 

 *  

 * @param message 

 *            Text to display in the toast. 

 */  

private Toast toast;  

private void showToast(CharSequence message) {  

    if (null == toast) {  

        toast = Toast.makeText(this, message,  

                Toast.LENGTH_LONG);  

        toast.setGravity(Gravity.CENTER, 0, 0);  

    } else {  

        toast.setText(message);  

    }  

   

    toast.show();  

}  

   

/** Hide the toast, if any. */  

private void hideToast() {  

    if (null != toast) {  

        toast.cancel();  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: