Android 自定义 Toast 显示时间
程序员文章站
2023-12-05 23:17:28
android 自定义 toast 显示时间
实现代码:
package com.wm.realname.util;
import android.conte...
android 自定义 toast 显示时间
实现代码:
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; } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!