8

我在我的应用程序中使用 Toast。当我按下按钮时,它显示 Toast。我的问题是,我第二次按下按钮时,第二次吐司正在“等待”第一次结束,并且仅显示出来。我希望当前的吐司立即显示而不是等待。这是我的简单代码:

toast = Toast.makeText(getApplicationContext(), "Press Back to retorn to the main page", Toast.LENGTH_SHORT);
toast.show();

我怎样才能做到这一点?

4

4 回答 4

6

您始终可以取消 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 对象,取消它,设置新文本并再次显示它。

于 2012-06-04T08:51:37.927 回答
3

https://stackoverflow.com/a/4485531/517561中,作者没有取消祝酒词,他们只是更改了文本。

于 2012-06-04T08:56:59.213 回答
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!.
}
于 2015-06-02T16:58:29.127 回答
1

您可以使用 toast.cancel() 显示下一个吐司。

于 2012-06-04T08:52:02.103 回答