怎么解决toast连续弹出的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么解决toast连续弹出的问题相关的知识,希望对你有一定的参考价值。

android中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。
在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。
import android.widget.Toast;
--------------------------------------------------------------------------------
//使用的地方1
showTextToast(getString(R.string.toast_irregular_number));

//使用的地方2
showTextToast(getString(R.string.toast_irregular_number2));
--------------------------------------------------------------------------------
private Toast toast = null;

private void showTextToast(String msg)
if (toast == null)
toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
else
toast.setText(msg);

toast.show();
参考技术A if (toast != null)
toast.cancel(); //取消
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); //重新新建并显示吐司
else
toast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT);

toast.show();
//完美解决连续点击过程中吐司也会消失问题,连续点击停止2秒后吐司自动消失
参考技术B private Toast toast = null;

private String msg ="what you want";

......

if (toast != null)
toast.setText(msg);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
else
toast = Toast.makeText(InsertActivity.this, msg, Toast.LENGTH_SHORT);
toast.show();

以上是关于怎么解决toast连续弹出的问题的主要内容,如果未能解决你的问题,请参考以下文章

有人知道怎么实现触摸屏幕弹出的Toast立即消失的功能吗?

android开发中关于toast的使用

如何在android studio运行toast

java连接数据库出现了问题,弹出的错误是啥问题啊?怎么解决

搜索连续最小值时避免频繁推送/弹出的数据结构

ios软键盘弹出再收起,页面布局错乱问题解决