Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更新Toast值?_Android_Toast - Fatal编程技术网

Android 如何更新Toast值?

Android 如何更新Toast值?,android,toast,Android,Toast,我试图在代码中的不同实例上更新toast值。 我尝试实例化一个对象,如下所示: Toast mToast = Toast.makeText(this,"",Toast.LENGTH_SHORT); 并在代码中需要时随时更新其值。像这样: mToast.setText("Hello!"); 初始实例化似乎正在破坏我的代码 有什么线索可以解释为什么会发生这种情况吗?您应该创建一个函数来接收字符串消息并显示它 public void showToast(String message) {

我试图在代码中的不同实例上更新toast值。 我尝试实例化一个对象,如下所示:

 Toast mToast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
并在代码中需要时随时更新其值。像这样:

mToast.setText("Hello!");
初始实例化似乎正在破坏我的代码


有什么线索可以解释为什么会发生这种情况吗?

您应该创建一个函数来接收字符串消息并显示它

public void showToast(String message) {

    Toast.makeText(this, message, Toast.LENGTH_LONG).show();

}
无论你想叫它到哪里:

showToast("My message");
编辑

要在显示时更新Toast,请执行以下操作:

Toast mToast = Toast.makeText(this, "text", Toast.LENGTH_LONG).show();

//...

mToast.cancel();
mToast.setText("Updated text");
mToast.show();

它对我有效,因此请提供您收到的任何错误消息:)

如果在实例化Toast时应用程序崩溃,则可能是因为构造函数中的上下文错误。 你在哪里申报?一定要了解你的真实背景

您不能真正更新吐司,但可以隐藏吐司并制作新吐司。 使用
mToast.cancel()
删除您的吐司,然后

mToast.setText("New text");
mToast.show();

当应用程序崩溃时,你能发布完整的stacktrace以获得输出到Logcat吗?@AndrewBrooke我知道崩溃是因为Toast是一个UI元素,需要属于其中一个。它本身无法实例化。亚历山大·马丁的解决方案可能是最简单的。我要试试看!我的问题是,如果屏幕上已经有以前的文本,它不会更新文本!它将在之后显示。您可以调用
cancel()
来摆脱已经显示在哪里使用“cancel()”的祝酒词?它是函数的第一行吗?崩溃发生在mToast实例化时。因此,我没有mToast来更新它。您的第一个参数是否引用活动上下文?也许“this”在侦听器中?它在三星Galaxy S3或Emulator API 25上都不起作用。调用
mToast.cancel()
时,相同的
mToast
不能再
show
。如果未调用
mToast.cancel()
,则它可以很好地与一个Toast配合使用,但如果我有多个实例,则会出现故障。