Android Toast 显示时间问题的探讨

来源:互联网 发布:生化危机启示录2 知乎 编辑:程序博客网 时间:2024/05/04 03:44

       我想,看到这篇文章的你对Toast并不陌生,可以这样说,Toast的作用就是提示用户。一般为了到达更好地用户体验效果,我们可以自定义Toast的显示效果,包括样式、显示时间等。这里我只对Toast的显示时间问题与大家分享一下我的经验。

我们知道Toast的默认显示时间有两个,分别为Toast.LENGTH_SHORT和Toast.LENGTH_LONG,当然我们也可以根据需要自定义Toast显示时间的长短,这个问题不是本文的重点,在这里不做介绍。下面开始我们的重点。使用过Toast的你,也许与我一样也遇到过这样的问题:我们在几个Button的点击事件中都添加Toast提醒消息,当逐个点击这些Button后,Toast消息会叠加出现,持续一个相对长的时间,并且当我们关闭此应用时,Toast消息还在显示。出现这种情况是因为每次Toast提示的时间叠加的结果,比如,第一个Toast出现的时间为1s,那么第二个就要等待1s后才能出现,这样就会造成时间的累加,致使显示时间增加。显然我们在做应用时并不希望出现此种情况,那么这里给出我的用过的一个方法。如果我们的应用使用Toast频繁,建议对此单独建个类以使代码不至于那么冗杂,我们用起来也方便。

ToastShow.class:

public class ToastShow {private Context context;private Toast toast = null;public ToastShow(Context context) { this.context = context;}public void toastShow(String text) {if(toast == null){toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);}else {toast.setText(text);}toast.show();}}

使用这段代码用于显示Toast就不会出现时间地叠加,下面分析一下。个人认为只是一个Toast在不停的显示,只是其内容(也就是出现的提示消息)不同,当Toast=null时,出现一个Toast,如果这个Toast还没有消失时就要出现第二个,那么只是使用其setText()方法改变了内容,文档对setText()方法地解释是:

Update the text in a Toast that was previously created using one of the makeText() methods.

也就是:更新之前创建的一个使用makeText()方法的Toast里的文本。看到这也许你就明白了。

最后说一句:分享有益、转载请注明出处:http://blog.csdn.net/zjbpku/article/details/7930764







原创粉丝点击