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