Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。

先给大家分享下我的解决思路:

不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可.

代码:

private Toast mToast;

public void showToast(String text) {

if(mToast == null) {

mToast = Toast.makeText(TestActivity.this, text, Toast.LENGTH_SHORT);

} else {

mToast.setText(text);

mToast.setDuration(Toast.LENGTH_SHORT);

}

mToast.show();

}

public void cancelToast() {

if (mToast != null) {

mToast.cancel();

}

}

public void onBackPressed() {

cancelToast();

super.onBackPressed();

}

下面介绍下解决Android Toast重复显示等待时间过长的问题

当触发点击事件显示toast信息时,如果设置了时间长短类型为LENGTH_LONG,虽然回到后台运行,但是依然会显示toast信息,尤其是当连续点击时,toast就会排队等待直到所有toast显示完毕,这种界面的用户体验是很差的。

→ 1 toast 2 toast 3 toast 4 toast 5 toast →

为了避免这种问题,可以再toast信息显示的地方加个判断,方法如下:

private Context mcontext;

private Toast mtoast;

if(mtoast!=null)

{

mtoast.setText(R.string.neterror);

}

else

{

/*

* 第一个参数:当前的上下文环境,用this或getApplicationContext()表示。

* 第二个参数:显示的字符串,用R.string表示。

* 第三个参数:显示的时间长短。用LENGTH_LONG(长)或LENGTH_SHORT(短)表示,也可以用毫秒。

*/

mtoast=Toast.makeText(mcontext,R.string.neterror, Toast.LENGTH_SHORT);

}

mtoast.show(); //显示toast信息

另外,还可以通过设置Toast的其他属性来设计自己风格的Toast消息框。

时间: 2016-01-05

android toast防重_如何解决android Toast重复显示相关推荐

  1. sqlserver leftjoin出现重复数据_数据库存数据时,逻辑上防重了为啥还会出现重复记录?...

    在很多异常情况下,比如高并发.网络糟糕的时候,数据库里偶尔会出现重复的记录. 假如现在有一张书籍表,结构类似这样 +----+--------------+ | id | name | +----+- ...

  2. android 启动白屏_为什么说Android 架构的未来是 MVVM?

    据<第45次中国互联网络发展状况统计报告>,2019年市场上监测到的APP数量比2018年减少85万款- 这两年,很多朋友都会有这样的疑惑: "现在Android的坑还值不值得入 ...

  3. Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题

    今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...

  4. android studio button位置_免费的Android开发环境

    Android Studio for mac是一个全面的Android开发环境,Android Studio帮助您设计,构建,测试和调试Android应用程序,利用Android Studio所有特色 ...

  5. android studio光标变成黑块,解决Android Studio 代码无提示无颜色区分问题

    解决Android Studio 代码无提示无颜色区分问题 一.问题 ①java代码没有颜色区分,统一黑色 ②代码不会联想提示,原来打前几个字母便会联想到后面的内容 二.解决 打开File,将Powe ...

  6. java 防重_如何做一个防重设计

    前言 在业务设计中防重设计是一个关键点,以接口设计为例,防重就是防止接口被多次调用而产生脏数据,比如支付订单出现重复支付,所以说防重至关重要,在如何防重之前我们首先看一下是如何出现重复请求的. 何时出 ...

  7. android 创建模拟器打不开,解决Android模拟器打不开的问题!...

    解决Android模拟器打不开的问题!... 昨天,我搭建Android开发环境,启动AVD时,出现了以下错误提示: PANIC: Could not open: D:\Android\android ...

  8. android打开app白色页面,完美解决Android App启动页有白屏闪过的问题

    应用启动的时候有短暂的白屏,如图: 可以通过设置theme的方式来解决 @color/colorPrimary @color/colorPrimaryDark @color/colorAccent t ...

  9. android 控件 堆叠_每次在Android上正确地向后堆叠

    android 控件 堆叠 When navigating in a mobile app, the screens opened after one another form a stack, th ...

  10. android导航栏自动弹出,解决android 显示内容被底部导航栏遮挡的问题

    描述: 由于产品需求,要求含有EditText的界面全屏显示,最好的解决方式是使用AndroidBug5497Workaround.assistActivity(this) 的方式来解决,但是华为和魅 ...

最新文章

  1. Bokeh中图形与组件的布局简介 | Bokeh 小册子
  2. Pytorch(一) --线性模型
  3. rank 开窗函数_over 开窗函数的的理解
  4. 基于javaspringboot+mybatis汽车信息管理系统设计和实现
  5. git提示(拷贝密钥问题)“Load key /home/devid/.ssh/id_rsa: bad permissions”
  6. 虚拟机使用ceph-deploy安装ceph
  7. 【转】AfxMessageBox、MessageBox、::MessageBox的区别
  8. ubuntu16下安装mongodb 3.6
  9. 查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件...
  10. 【手写数字识别】基于matlab Fisher分类手写数字识别 【含Matlab源码 505期】
  11. WinHttp c++ 介绍及应用
  12. ubuntu16.04 部署dzzoffice+onlyoffice 局域网实现word、excel文档协同编辑
  13. Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
  14. Ubuntu 12.10下用Pidgin(pidgin-lwqq)登录QQ
  15. Jav安全框架Shiro学习总结(1)
  16. Shiro解决多个二级域名的单点登录问题
  17. 开发项目中,360浏览器遇到的一个坑
  18. MySql中 case then when end用法
  19. 进击的局座:悄悄话读后感
  20. ESP32蓝牙Bluetooth Controller API介绍

热门文章

  1. 非监督分类ecognition_ENVI遥感影像土地利用分类说明
  2. html位置插入透明动画文字,鼠标放上去,图片上方动态显示半透明说明文字(源码)...
  3. 文本特征提取:词袋模型/词集模型,TF-IDF
  4. 安信可nbiot模块_安信可无线模组
  5. js实现网页中简体与繁体互转
  6. Base16,Base32,Base64编码详细学习
  7. Java NIO、BIO介绍
  8. sql 主键 外键
  9. NPDP考试地点在哪?
  10. goredis文档中文翻译---Getting started with Golang Redis