如何解决android Toast重复显示

 更新时间:2016年01月08日 10:03:28   作者:Z2  
Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示,本文给大家介绍android Toast重复显示的解决办法,涉及到android toast 相关知识,有需要的朋友参考下

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消息框。

相关文章

  • Android实现返回拍摄的图片功能实例

    Android实现返回拍摄的图片功能实例

    这篇文章主要介绍了Android实现返回拍摄的图片功能,以实例形式较为详细的分析了Android返回拍摄图片功能的具体步骤与实现方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • android实现上滑屏幕隐藏底部菜单栏的示例

    android实现上滑屏幕隐藏底部菜单栏的示例

    这篇文章主要介绍了android实现上滑屏幕隐藏底部菜单栏的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Android开发之Button事件实现与监听方法总结

    Android开发之Button事件实现与监听方法总结

    这篇文章主要介绍了Android开发之Button事件实现与监听方法,结合实例形式总结分析了Android开发中Button事件的两种实现方法以及针对Button控件的几种常用监听方法,需要的朋友可以参考下
    2016-01-01
  • Android中如何使用Glide加载图像

    Android中如何使用Glide加载图像

    大家好,本篇文章主要讲的是Android中如何使用Glide加载图像,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Android滑动冲突的完美解决方案

    Android滑动冲突的完美解决方案

    在Android开发中滑动冲突可以说是比较常见的一类问题,也是比较让人头疼的一类问题,两个原本完美的控件,组合在一起之后,忽然发现整个世界都不好了。滑动冲突主要分为同方向滑动冲突和不同方向滑动冲突,下面本文将详细说明两种滑动冲突如何解决。
    2016-08-08
  • Android调用手机摄像头的方法

    Android调用手机摄像头的方法

    这篇文章主要为大家详细介绍了Android调用手机摄像头的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android开发之DrawerLayout实现抽屉效果

    Android开发之DrawerLayout实现抽屉效果

    这篇文章主要介绍了Android开发之DrawerLayout实现抽屉效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android WebRTC 对 AudioRecord 的使用技术分享

    Android WebRTC 对 AudioRecord 的使用技术分享

    这篇文章主要介绍了Android WebRTC 对 AudioRecord 的使用技术分享,AudioRecord 是 Android 基于原始PCM音频数据录制的类,接下来和小编进入文章了解更详细的内容吧
    2022-02-02
  • Android开发之imageView图片按比例缩放的实现方法

    Android开发之imageView图片按比例缩放的实现方法

    这篇文章主要介绍了Android开发之imageView图片按比例缩放的实现方法,较为详细的分析了Android中ImageView控件的scaleType属性控制图片缩放的具体用法,需要的朋友可以参考下
    2016-01-01
  • Android评分控件RatingBar使用实例解析

    Android评分控件RatingBar使用实例解析

    这篇文章主要为大家详细介绍了Android评分控件RatingBar使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论