Android 自定义 Toast 显示时间
作者:lqh 发布时间:2022-01-22 23:22:06
标签:Android,Toast,时间
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;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.123si.org/android/240.html


猜你喜欢
- 前言爱美之心人皆有之,在 unix 和 linux 命令行环境下工作的闷骚程序员们可能也觉得命令行太单调了,而是他们就发明了在命令行下采用
- 最近在做一个移动端HTML5的应用,使用到了上传功能,起初使用传统的上传方式上传手机拍照的照片,由于手机拍照出来的照片一般都是好几MB,所以
- 本文实例讲述了Java中方法名称和泛型相同的用法。分享给大家供大家参考,具体如下:一 点睛Java中,方法的名称可以用泛型替代。二 实战1
- 实习一段时间了,一直想写点技术总结,但一直没找到合适的主题。刚好,最近版本中我负责的模块遇到了个线程相关问题(之前一直画界面,做点基础功能,
- 本文实例为大家分享了WPF实现半圆形导航菜单的具体代码,供大家参考,具体内容如下实现效果如下:思路:扇形自定义控件组合成半圆型菜单,再通过c
- Android Studio是Android的官方IDE。它是专为Android而打造,可以加快您的开发速度,帮助您为每款Android设备
- 温故而知新网上说多进程的文章很多,不过基本都是在讨论很深的东西,这是需要去专研的,而我是来这篇是用来偷懒的(应用层次),记录的都是自己对多进
- 目录示例1: EncryptByAes示例2: main示例3: wrapperPublicPriviteKeyTest示例4: initH
- 本文实例讲述了Java Socket实现多线程通信功能的方法。分享给大家供大家参考,具体如下:前面的文章《Java Socket实现单线程通
- 一、前言在java中,和C语言一样,也有关于字符串的定义,并且有他自己特有的功能,下面我们一起来学习一下。二、String类概述string
- Java提供了许多创建线程池的方式,并得到一个Future实例来作为任务结果。对于Spring同样小菜一碟,通过其scheduling包就可
- 前言今天我们来讨论一下,程序中的错误处理。在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避
- 获取非公平锁(基于JDK1.7.0_40)非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单
- 场景日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的
- 代码实例一 using System; using System.IO; using System.Collections; using S
- 之前使用OnSharedPreferenceChangeListener,遇到了点小问题,就是有些时候OnSharedPreferenceC
- Android开发文档上专门有一小节解释这个问题。简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configurat
- 日期、数字格式化显示,是web开发中的常见需求,spring mvc采用XXXFormatter来处理,先看一个最基本的单元测试:packa
- 这是一篇关于LIstView实现动态数据渲染的文章! 首先我们讲讲数据是如何来规划的 一般情况下我们有两种规划方案前提比如我们数据
- 本文实例讲述了Android互联网访问图片并在客户端显示的方法。分享给大家供大家参考,具体如下:1、布局界面<RelativeLayo