2012-04-23 67 views
3

我在我的活动中有一个按钮。如果我点击Show Toast。但是当我再次点击Toast显示。所以当我点击很多次这个Toast会出现很长时间。当第一次消失时,接下来是显示等等。当我再次点击按钮时,我可以做什么,第一次吐司将被隐藏。吐司和持续时间

+1

检查[这](http://stackoverflow.com/questions/5295765/toast-issue-in-android/5295800#5295800) – silwar 2012-04-23 10:42:56

+0

我怎么能确认我的敬酒还是在屏幕上? – edi233 2012-04-23 11:40:25

+0

当你在屏幕上显示吐司开始计时器,如果你正在呼叫显示吐司再次检查计时器,它与持续时间相同。如果它仍然在运行意味着烤面包仍然在屏幕上 – silwar 2012-04-23 11:42:39

回答

5

致电cancel()方法隐藏吐司如果已经显示。

看一看this API.

这可以简单地称为敬酒的对象。

Toast toast = new Toast(context); 

toast.setText("Text"); 
toast.show();//(call show() to display Toast) 
toast.cancel();//(call cancel() to hide Toast). 
+0

当我尝试使用上面的代码时,我收到了一条错误消息。解决方法是使用静态方法“Toast.makeText”: ** Toast.makeText(getApplicationContext(),“Text”,2000).show(); ** (2000是2秒的持续时间) – 2012-08-28 18:59:46

+0

In'Toast'你没有持续时间... – pixel 2013-05-16 15:45:48

+0

抛出一个运行时异常:** java.lang.RuntimeException:这个Toast不是用Toast.makeText()创建的** – 2015-03-14 15:04:25

3

将此代码添加到您的活动(全局吐司),并取消它,一旦你想显示一个新的文本。

Toast myLovelyToastThatNeverDies; 
public void onClick(View v) { 

    if(myLovelyToastThatNeverDies==null) 
     myLovelyToastThatNeverDies = new Toast(Activity.this); 
    else 
     myLovelyToastThatNeverDies.cancel(); 
    myLovelyToastThatNeverDies.setText("my new text"); 
    myLovelyToastThatNeverDies.setDuration(anAverageDuration); 
    myLovelyToastThatNeverDies.show(); 
}