gpt4 book ai didi

java - 在 Android 中避免 Toast 堆积的最佳方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:38:09 25 4
gpt4 key购买 nike

在 Android 中,当我创建 Toast 并显示它们时,它们会连续出现。问题是我有一个检查某些字段的按钮,如果用户输入了不正确的数据,则会显示 Toast。如果用户重复触摸按钮,Toast 会累积,消息不会在几秒钟内消失。

避免这种情况的最佳方法是什么?

  • 我可以保存对上一个 Toast 的引用并在创建新 Toast 之前将其删除吗?
  • 我应该对所有消息使用相同的 Toast 吗?
  • 在制作和显示新应用程序 Toast 之前,我是否可以使用任何方法清除所有应用程序 Toast?

最佳答案

您可以使用Toastcancel() 方法来关闭正在显示的Toast。

在显示每个 Toast 时使用一个变量来保留对它的引用,并在显示另一个 Toast 之前简单地调用 cancel()

private Toast mToast = null; // <-- keep this in your Activity or even in a custom Application class

//... show one Toast
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();

//... show another Toast
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();

// and so on.

你甚至可以像这样把它包装成一个小类:

public class SingleToast {

private static Toast mToast;

public static void show(Context context, String text, int duration) {
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();
}
}

并像这样在您的代码中使用它:

SingleToast.show(this, "Hello World", Toast.LENGTH_LONG);

//

关于java - 在 Android 中避免 Toast 堆积的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com