首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android -隐藏所有显示的Toast消息

Android -隐藏所有显示的Toast消息
EN

Stack Overflow用户
提问于 2010-05-03 06:32:05
回答 15查看 57.8K关注 0票数 56

如何删除当前显示的所有toast消息?

在我的应用中,有一个列表,当用户点击一个项目时,会显示一条吐司消息,10个项目- 10个吐司消息。

因此,如果用户点击10次,然后按下菜单按钮,他们必须等待几秒钟,直到他们能够阅读菜单选项文本。

它不应该是这样的:)

EN

Stack Overflow用户

发布于 2015-03-10 01:13:46

使用上面Madur的出色答案,我将其扩展为一个处理不同类型消息的类:

代码语言:javascript
运行
复制
public class ToastManager {
    private Toast toastWarningMessage;
    private Toast toastAddMessage;
    ...

    public void messageWarning(Context context, String message) {
        if(toastWarningMessage == null) {
            toastWarningMessage = Toast.makeText(context, message, Toast.LENGTH_SHORT);
        } else {
            toastWarningMessage.cancel();
            toastWarningMessage.setText(message);
        }
        toastWarningMessage.show();
    }

    public void messageAdd(Context context, String message) {
        if(toastAddMessage == null) {
            toastAddMessage = Toast.makeText(context, message, Toast.LENGTH_SHORT);
        } else {
            toastAddMessage.cancel();
            toastAddMessage.setText(message);
        }
        toastAddMessage.show();
    }
    ...
}

这是在我的主活动中调用的:

代码语言:javascript
运行
复制
ToastManager toastManager;
...
private void toastWarningMessage(String message) {
    if(toastManager == null) toastManager = new ToastManager();
    toastManager.messageWarning(this, message);
}

对消息进行分类的原因是为了确保重要消息不会被覆盖。这个解决方案似乎很容易重用,因为它只涉及到重命名Toast和函数名称。

当用户按下垃圾邮件按钮时,每次都会取消相同类型的消息。唯一的问题是,如果用户可以垃圾邮件的混合。这导致第一条消息重复,一旦它最终过期,其他消息各显示一次。这并不是一个大问题,但需要注意的是。

我还没有研究过拥有多个Toast实例的可能的缺点。

票数 0
EN
查看全部 15 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2755277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档