解决android 关于Toast重复显示解决方法

Android 中Toast重复显示每次都延时累计造成提示框一直显示完累计的时间才退去的问题。

 在使用Toast作为提示信息时,Toast会显示在屏幕下方,一般用来提示用户的误操作。当用户在某些情况下,用户连续误操作多次时,会导致出现很多个Toast,依次显示,会在页面上停留很长时间,这个会严重影响软件的用户亲和性。我们可以通过一下方法来实现在一个Toast没有结束的时候再显示Toast不累加时间,而是打断当前的Toast,显示新的Toast。这样Toast就不会停留在界面很久。而最多显示一个Toast提示时间的。

解决方案不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可.

private Toast mToast;
    public void showToast(String text) {  
        if(mToast == null) {  
            mToast = Toast.makeText(TestActivity.this, text, Toast.LENGTH_SHORT);  
        } else {  
            mToast.setText(text);    
            mToast.setDuration(Toast.LENGTH_SHORT);  
        }  
        mToast.show();  
    }  
      
    public void cancelToast() {  
            if (mToast != null) {  
                mToast.cancel();  
            }  
        }  
      
    public void onBackPressed() {  
            cancelToast();  
            super.onBackPressed();  
        }  

你可能感兴趣的:(Android)