我在我的应用中使用Toast。当我按下按钮时,它显示一个Toast。我的问题是,第二次按下按钮时,第二次吐司正在“等待”第一次结束并且仅显示...我希望当前的一个立即显示而不是等待。 这是我的简单代码:
toast = Toast.makeText(getApplicationContext(), "Press Back to retorn to the main page", Toast.LENGTH_SHORT);
toast.show();
我该怎么做?
答案 0 :(得分:6)
您可以随时cancel a Toast object。
final Toast tst = Toast.makeText(ctx, "This is a toast.", Toast.LENGTH_SHORT);
tst.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
tst.cancel();
tst.setText("Same toast with another message.");
tst.show();
}
}, 1000);
因此,您可以使用第一个Toast对象,取消它,设置新文本并再次显示,而不是创建另一个Toast对象。
答案 1 :(得分:3)
在https://stackoverflow.com/a/4485531/517561中,作者没有取消吐司,他们只是改变了文字。
答案 2 :(得分:2)
取消原始Toast
,设置新消息并再次显示Toast
消息。
Toast mytoast;
mytoast = Toast.makeText(this, "Hi Ho Jorgesys! ", Toast.LENGTH_LONG);
mytoast.show();
....
....
....
if(CancelToast){
mytoast.cancel(); //cancelling old Toast!
mytoast = Toast.makeText(this, "Same toast with another message.", Toast.LENGTH_LONG); //Setting a new message.
mytoast.show(); //Show the new message!.
}
答案 3 :(得分:1)
您可以在显示旁边的toastr。
之前使用toastr.cancel()