2012-07-15 52 views
1

当我搜索吐司在stackoverflow我发现很多事情都与我的问题有关。但他们都没有解决我的问题。在我的Android应用程序中,我应该在海誓山盟之后展示许多祝酒词。但是,当我尝试这样做时,接下来的祝酒会等待当前祝酒结束。即使我用取消敬酒,在我看来,它从来没有works.Please我提供你一个确切的solution.Thank ..吐司取消不起作用

inflater = getLayoutInflater(); 
    backgForToast=(ViewGroup) findViewById(R.id.toast_layout_root); 
    layout = inflater.inflate(R.layout.toastbackground,backgForToast); 
    textForToast = (TextView) layout.findViewById(R.id.text); 

    textForToast.setText(toastMessage); 
    toast.setGravity(Gravity.TOP|Gravity.LEFT, toastX2-90,toastY2-90); 
    toast.setView(layout); 
    toast.show(); 

    Handler handler = new Handler(); 
    long delay = 500; 

    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      toast.cancel(); 
     } 
    }, delay); 

回答

1

你需要创建一个Toast对象与Toast.makeText才能cancel()它。

+0

我做到了在这样的吐司=新吐司(本)onCreate方法; – Emilla 2012-07-15 16:20:03

+0

好的,所以你需要在调用'cancel()'之前调用'toast.makeText(this,toastMessage,Toast.LENGTH_LONG);'(或类似的东西)。 – 2012-07-15 16:21:56

+0

但我正在使用自定义烤面包......我夸大了烤面包的观点 – Emilla 2012-07-15 16:42:26

1

这是一个基本的例子取消Toast

Toast mytoast; 
mytoast = Toast.makeText(getApplicationContext(), "Jorgesys was here!", Toast.LENGTH_LONG); 
mytoast.show(); 
.... 
.... 
.... 
if(CancelToast){ 
    mytoast.cancel(); //Cancelling the toast!. 
}