Android 自定义 Toast 显示时间
创新互联公司是一家以网络技术公司,为中小企业提供网站维护、成都网站制作、做网站、网站备案、服务器租用、申请域名、软件开发、成都微信小程序等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎联系:18980820575
实现代码:
package com.wm.realname.util; import android.content.Context; import android.os.Handler; import android.view.View; import android.widget.Toast; /** * Toast自定义显示时间 * 使用方法 * 1.先初始化类 MyToast myToast = new MyToast(this); * 2.显示消息 myToast.setText("要显示的内容"); //设置要显示的内容 * myToast.show(8000); //传入消息显示时间,单位毫秒,最少2000毫秒,并且只能是2000的倍数。 * 传入0时会一直显示,只有调用 myToast.cancel();时才会取消。 * 3.取消消息显示 myToast.cancel(); * */ public class ToastUtil { private Context mContext = null; private Toast mToast = null; private Handler mHandler = null; private int duration = 0; private int currDuration = 0; private final int DEFAULT = 2000; private Runnable mToastThread = new Runnable() { public void run() { mToast.show(); mHandler.postDelayed(mToastThread, DEFAULT); // 每隔2秒显示一次 if (duration != 0) { if (currDuration <= duration) { currDuration += DEFAULT; } else { cancel(); } } } } public ToastUtil(Context context) { mContext = context; currDuration = DEFAULT; mHandler = new Handler(mContext.getMainLooper()); mToast = Toast.makeText(mContext, "", Toast.LENGTH_LONG); } public void setText(String text) { mToast.setText(text); } public void show(int duration) { this.duration = duration; mHandler.post(mToastThread); } public void setGravity(int gravity, int xOffset, int yOffset) { mToast.setGravity(gravity, xOffset, yOffset); } public void setDuration(int duration) { mToast.setDuration(duration); } public void setView(View view) { mToast.setView(view); } public void cancel( ) { mHandler.removeCallbacks(mToastThread);// 先把显示线程删除 mToast.cancel();// 把最后一个线程的显示效果cancel掉,就一了百了了 currDuration = DEFAULT; } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文题目:Android自定义Toast显示时间
浏览路径:https://www.cdcxhl.com/article28/ghdgcp.html
成都网站建设公司_创新互联,为您提供全网营销推广、电子商务、网站策划、网站设计、网站营销、网站改版
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联