android toast设立比Toast.LENGTH_SHORT还短的持续时间

android toast设置比Toast.LENGTH_SHORT还短的持续时间

最近接触android开发,很多东西使用的时候都没考虑到通用性,比如我经常使用的toast,系统自带的Toast.LENGTH_LONG是3.5秒,Toast.LENGTH_SHORT是2秒,我们有的时候发现Toast.LENGTH_SHORT比我们想要的效果还是长了一些。这里我们可以用handler来手动cancel这个toast,同时把它当做一个通用方法来使用。在这里我把这个方法列下来供自己参考:

<span style="white-space:pre">	</span>/**
	 * 
	 * 显示toast,自己定义显示长短。
	 * param1:activity  传入context
	 * param2:word   我们需要显示的toast的内容
	 * param3:time length  long类型,我们传入的时间长度(如500)
	 */
	public static void showToast(final Activity activity, final String word, final long time){
		activity.runOnUiThread(new Runnable() {	
			public void run() {
				final Toast toast = Toast.makeText(activity, word, Toast.LENGTH_LONG);
				toast.show();
				Handler handler = new Handler();
			        handler.postDelayed(new Runnable() {
			           public void run() {
			               toast.cancel(); 
			           }
			    }, time);
			}
		});
	}

我后面会多多进行总结,把自己项目中的很多可以共用的代码抽出来,这样可以减少自己工作量。同时把自己的共用代码都贴上来,供自己以后查阅之用~

1楼spwwzh57分钟前
为什么不直接这样写nToast toast = Toast.makeText(activity, word, time).show(); nmakeText()的第三个参数可以直接添加时间,以毫秒为单位
Re: y50577214614分钟前
回复spwwzhn我这样写了,不知道为什么不管用~持续时间并未改变。