我试图在我的代码中的不同实例更新toast值。我尝试像这样实例化一个对象:
Toast mToast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
并在需要时在代码中更新其值。这样的:
mToast.setText("Hello!");
初始化似乎使我的代码崩溃了。
知道为什么会这样吗?
如果应用程序在你实例化Toast时崩溃,可能是因为构造函数中的上下文错误。你在哪里申报?请务必了解你的真实背景。
你不能真正更新吐司,但是你可以隐藏吐司并制作一个新的。使用mToast.cancel();
删除Toast,然后
mToast.setText("New text");
mToast.show();
您应该创建一个函数来接收字符串消息并显示它。
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();
它适用于我,所以请提供您得到的任何错误信息:)