Android吐司不同的活动/片段

时间:2014-05-05 10:17:06

标签: android toast

我在Android上使用吐司,但是我不希望吐司消失。而是留下...... 而且我不希望吐司出现在不同的活动或片段上。 如果我在某个片段中调用吐司,我不希望在不同的片段或活动中看到它。 让我们说活动1,我打电话toast..i去活动2 ...我不想要吐司显示。当我回到活动1时,我看到吐司仍在原地。 我也希望这是碎片。

  

Toast toast = Toast.makeText(dialog.getContext(),R.string.serverError,Toast.LENGTH_LONG);                                                           toast.show();

4 个答案:

答案 0 :(得分:1)

如果您希望移出活动时Toast不会留在屏幕上,那么我建议您使用第三方库Crouton

答案 1 :(得分:1)

试试这种方式

Fragment:

中的

final Toast toast = Toast.makeText(getActivity(), "Test", Toast.LENGTH_SHORT);
            toast.show();

            Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                   @Override
                   public void run() {
                       toast.cancel(); 
                   }
            }, 500);
Activity:

中的

 final Toast toast = Toast.makeText(activity.this, "Test", Toast.LENGTH_SHORT);
            toast.show();

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

答案 2 :(得分:0)

一种可能性是在片段/活动中制作Toast global。现在,您可以在onPause()之类的回调中调用Toast.cancel(),如果您切换活动或片段,则会调用此回调。

文档说取消:

  

关闭视图,如果它显示,或者如果没有显示则不显示   然而。 ...

更好的方法是为评论中建议的jitain sharma制作Toast的自定义类。

答案 3 :(得分:0)

在您的活动onDestory方法中使用以下代码:

toast.cancel();