精华内容
下载资源
问答
  • Toast工具类 解决Toast重复显示,Toast一直显示,在线程中可用 希望 TkToastUtil 能帮助你 import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; ...

    Toast工具类 解决Toast重复显示,Toast一直显示,在线程中可用

    希望 TkToastUtil 能帮助你

    
    import android.content.Context;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.text.TextUtils;
    import android.widget.Toast;
    
    /**
     * 
     * @Title: TkToastUtil.java
     * @Package com.tk.util
     * @Description: (Toast帮助类,多次点击只显示一次,提供线程中执行方法,<span style="font-family: Arial, Helvetica, sans-serif;">在线程中可用</span><span style="font-family: Arial, Helvetica, sans-serif;">)</span>
     * @author tokey
     */
    public class TkToastUtil {
    
    	/** 上下文. */
    	private static Context mContext = null;
    	private static String KEY = "TEXT";
    	/** 显示Toast. */
    	private static final int SHOW_TOAST = 0;
    	private static String oldMsg;
    	private static Toast toast = null;
    	private static long oneTime = 0;
    	private static long twoTime = 0;
    	/**
    	 * 主要Handler类,在线程中可用 what:0.提示文本信息
    	 */
    	private static Handler baseHandler = new Handler() {
    
    		@Override
    		public void handleMessage(Message msg)
    		{
    			switch (msg.what) {
    			case SHOW_TOAST:
    				showToast(mContext, msg.getData().getString(KEY));
    				break;
    			default:
    				break;
    			}
    		}
    	};
    	/**
    	 * 描述:核心判断显示方法
    	 * 
    	 * @param  context
    	 * @param  text   
    	 * @return void
    	 */
    	private static void core(Context context, String text)
    	{
    		if (toast == null) {
    			toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
    			toast.show();
    			oneTime = System.currentTimeMillis();
    		} else {
    			twoTime = System.currentTimeMillis();
    			if (text.equals(oldMsg)) {
    				if (twoTime - oneTime > Toast.LENGTH_SHORT) {
    					toast.show();
    				}
    			} else {
    				oldMsg = text;
    				toast.setText(text);
    				toast.show();
    			}
    		}
    		oneTime = twoTime;
    	}
    
    	/**
    	 * 描述:Toast提示文本.
    	 * 
    	 * @param text 文本
    	 */
    	public static void showToast(Context context, String text)
    	{
    		mContext = context;
    		if (!TextUtils.isEmpty(text)) {
    			core(context, text);
    		}
    
    	}
    
    	/**
    	 * 描述:Toast提示文本.
    	 * 
    	 * @param resId 文本的资源ID
    	 */
    	public static void showToast(Context context, int resId)
    	{
    		mContext = context;
    		core(context, "" + context.getResources().getText(resId));
    	}
    
    	/**
    	 * 描述:在线程中提示文本信息.
    	 * 
    	 * @param resId 要提示的字符串资源ID,消息what值为0,
    	 */
    	public static void showToastInThread(Context context, int resId)
    	{
    		mContext = context;
    		Message msg = baseHandler.obtainMessage(SHOW_TOAST);
    		Bundle bundle = new Bundle();
    		bundle.putString(KEY, context.getResources().getString(resId));
    		msg.setData(bundle);
    		baseHandler.sendMessage(msg);
    	}
    
    	/**
    	 * 描述:在线程中提示文本信息.
    	 * 
    	 * @param toast 消息what值为0
    	 */
    	public static void showToastInThread(Context context, String text)
    	{
    		mContext = context;
    		Message msg = baseHandler.obtainMessage(SHOW_TOAST);
    		Bundle bundle = new Bundle();
    		bundle.putString(KEY, text);
    		msg.setData(bundle);
    		baseHandler.sendMessage(msg);
    	}
    
    }
    
    


    代码如有问题,请给博主留言,万分感激。

    展开全文
  • android :让Toast一直显示的解决方法

    千次阅读 2011-04-27 19:07:56
    前两天社区还有人问,想让Toast一直显示,怎么做呢? Toast有个setDuration方法设置显示的。但很奇怪的只能设置两个值,Toast.LENGTH_LONG或Toast.LENGTH_SHORT。设置其他值都没你想要的效果,只...

    Toast是Android用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。前两天社区还有人问,想让Toast一直显示,怎么做呢?

    Toast有个setDuration方法设置显示的。但很奇怪的只能设置两个值,Toast.LENGTH_LONG或Toast.LENGTH_SHORT。
    设置其他值都没你想要的效果,只能是Toast.LENGTH_LONG或Toast.LENGTH_SHORT其中一值。

    其实可以用Timer来解决。 isRunning = true; 

    timer = new Timer(); 

    timer.schedule(new TimerTask(){ 

     

        @Override 

        public void run() { 

        // TODO Auto-generated method stub 

            while(isRunning){ 

                toast.show(); 

            } 

        } 

                             

    }, 10); 

    展开全文
  • Toast一直显示的方法

    千次阅读 2010-09-26 11:42:00
    如果想不用timer,可以启动一个service,然后这个service的handler中来显示toast。下面再给出一个例子。 import android.app.Service;import android.content.Intent;import android.os.Bundle;import android.os....

    如果想不用timer,可以启动一个service,然后这个service的handler中来显示toast。下面再给出一个例子。

    封装了Toast,并实现了Toast长期显示

    展开全文
  • 做程序的时候最常用的弹出大概就是Toast了。但有时候会发先一个特别尴尬的问题,就是:一旦你点击某个按钮次数多了,即使在程序退出后,Toast也弹个不停。什么原因造成的呢? 是这样的:我们为了方便,在写弹出...

    做程序的时候最常用的弹出大概就是Toast了。但有时候会发先一个特别尴尬的问题,就是:一旦你点击某个按钮次数多了,即使在程序退出后,Toast也弹个不停。什么原因造成的呢?

    是这样的:我们为了方便,在写弹出Toast的时候通常使用的是Toast.makeText(this, "Toast测试", Toast.LENGTH_LONG).show();。弹出Toast过多恰恰就出现在这段代码本身。因为每调用一次这段代码程序就会重新创建一个Toast对象(Tost弹出的顺序是一个接一个的,也就是说第一个从显示到消失后,第二个才能够显示)。最终导致Toast弹出时间累加,故而造成一直弹出的现象。

    解决办法:很简单的,上面不是提到是由于每次都创建一个新对象的原因造成的吗。那我们就不给它机会创建其他对象。写一个单例的自定义的Toast。问题就能够得到解决。单例相信大家都会的,这里我就不再赘述了,仅提供一个参考思路。

     

     

    转载于:https://www.cnblogs.com/tony-yang-flutter/p/3783531.html

    展开全文
  • 最近在做一个项目突然发现以前的按2次关闭应用的提示应用都退出了还一直显示,这样严重影响效果必须解决掉。 public static Toast toast = null; public static int LENGTH_LONG = Toast.LENGTH_LONG; ...
  • 4、Toast一直显示 final Toast toast = Toast.makeText(context,"toast", Toast.LENGTH_LONG);  Timer timer = new Timer();  timer.schedule(new TimerTask() {    @Override  public void ...
  • 4、Toast一直显示 final Toast toast = Toast.makeText(context,"toast", Toast.LENGTH_LONG); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { // ...
  • import android.widget.Toast; import android.*; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bmob...
  • Android Toast 保持一直显示

    千次阅读 2018-02-02 17:13:38
    Toast(context.getApplicationContext()); mToast .setDuration(Toast. LENGTH_SHORT ); mToast .setGravity(Gravity. CENTER , 0 , 0 ); mToast .setView(toastView); } else { toastMsg = (TextView) ...
  • 【背景介绍】 最近遇到这样一个BUG,页面中有个按钮,点击按钮后弹出toast提示。但是多次点击此按键时,Toast会...  多次点击后Toast一直显示的效果:  【解决方案】public class MainActivity extends AppCompatA
  • 如大家所想,第一次点击用Toast提示,如果在两秒内再次点击那么程序退出。 在我们平时写App的时候,习惯用Application的上下文对象...App退出之后,我的Toast还在显示一直消失不了。 先说说我的操作吧: ...
  • Toast长时间显示的处理

    千次阅读 2018-08-16 14:18:48
    在工作中经常有一些地方需要Toast,但是有的时候由于多次的调用会使Toast一直显示,即使把App关掉也不行,非常影响用户体验:所以现改为如下: private static Toast toast; /** * 只显示当前点击时间+1秒的...
  • 产品在测试过程中发现一个bug,就是测试人员不停的疯狂的点击某个按钮,触发了toast以后,toast内容会一直排着队的显示出来,不能很快的消失。这样可能会影响用户的使用。 看到Toast有一个cancel()方法: 代码如下:...
  • 防止Toast一直弹出

    2013-05-28 11:01:58
    android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。  在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时...
  • TOAST:不重复显示Toast

    千次阅读 2017-09-21 15:25:08
    问题:对用户的某个动作弹出Toast,采用一般的显示Toast的方法,如果用户多次做某个动作,则屏幕会一直显示Toast,体验不好。 目标:如果Toast正在显示,同个Toast不再弹出Toast,而是在原来的Toast上继续显示一定...
  • Android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。  在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时...
  • 连续二次按返回退出应用程序(多次按Toast一直长时间显示问题处理)
  • Toast可以用来显示音量改变或者保存更新消息,如果用户一直点击,Toast会排队一个一个的,直到消息队列全部显示完,这样的效果显然是不好的,下面来看解决方法 Toast.makeText(activity, text, duration)每次会实例...
  • Android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。  在 使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次...
  • Android中防止Toast一直点击一直弹出

    千次阅读 2016-10-09 14:43:36
    在使用工作中经常使用Toast,如果用户连续点击很多下按钮,可能Toast显示一两分钟也不会消失,这就给我们的用户造成了困扰。以下是解决办法:private int num = 0;//连续点击的次数 private static Toast toast;...
  • 如何取消Toast显示

    千次阅读 2013-04-18 13:56:47
    有时候点击按钮会出现提示Toast,如果多次点击,就会一直累计出现,即使你离开这个Activity还是会出现知道最后一Toast显示完,有什么办法让一离开,比如按back键就不让这些Toast显示呢?下面这个方法来自于网络,...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
热门标签
关键字:

toast一直显示