我在我的应用程序中使用 Toast。当我按下按钮时,它显示 Toast。我的问题是,我第二次按下按钮时,第二次吐司正在“等待”第一次结束,并且仅显示出来。我希望当前的吐司立即显示而不是等待。这是我的简单代码:
toast = Toast.makeText(getApplicationContext(), "Press Back to retorn to the main page", Toast.LENGTH_SHORT);
toast.show();
我怎样才能做到这一点?
您始终可以取消 Toast 对象。
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 对象,取消它,设置新文本并再次显示它。
在https://stackoverflow.com/a/4485531/517561中,作者没有取消祝酒词,他们只是更改了文本。
取消您原来的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!.
}
您可以使用 toast.cancel() 显示下一个吐司。