gpt4 book ai didi

android - 如果没有显示 Toast,则显示 Toast

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:47 34 4
gpt4 key购买 nike

我有几个可以在 fragment 上单击的按钮。单击每个按钮后,我会显示一条 Toast 消息,每个按钮都完全相同。因此,如果你一个接一个地按下 5 个不同的按钮,你将叠加 5 个 toast 消息,最终会长时间显示相同的消息。如果当前没有正在运行的 Toast,我想做的是显示一个 Toast。

我用来显示 Toast 消息的方法

public void showToastFromBackground(final String message) {
runOnUiThread(new Runnable() {

@Override
public void run() {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
});
}

按下按钮时,我只需调用 showToastFromBackground("Text to show");

我真正想要的是类似的东西

public void showToastFromBackground(final String message) {
if(toastIsNotAlreadyRunning)
{
runOnUiThread(new Runnable() {

@Override
public void run() {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
});
}
}

最佳答案

使用:

toast.getView().isShown();

或者:

if (toast == null || toast.getView().getWindowVisibility() != View.VISIBLE) {
// Show a new toast...
}

编辑:

Toast lastToast = null; // Class member variable

public void showToastFromBackground(final String message) {
if(isToastNotRunning()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
lastToast = Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG);
lastToast.show();
}
});
}
}

boolean isToastNotRunning() {
return (lastToast == null || lastToast.getView().getWindowVisibility() != View.VISIBLE);
}

关于android - 如果没有显示 Toast,则显示 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545046/

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