我正在尝试更新代码中不同实例的toast值。 我试图像这样实例化一个对象:
Toast mToast = Toast.makeText(this,"",Toast.LENGTH_SHORT);
并在我需要内部代码时更新其值。像这样:
mToast.setText("Hello!");
初始实例化似乎正在崩溃我的代码。
为什么会发生这种情况的任何线索?
答案 0 :(得分:1)
您应该创建一个接收字符串消息并显示它的函数。
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();
它适用于我,所以请提供您所获得的任何错误消息:)
答案 1 :(得分:1)
如果在实例化Toast时应用程序崩溃,则可能是构造函数中的错误上下文。 你在哪里宣布它?一定要得到真实的背景。
您无法更新Toast for real,但您可以隐藏Toast并制作新的Toast。
使用mToast.cancel();
删除你的Toast,然后
mToast.setText("New text");
mToast.show();