解决Android中Toast重复弹出问题

在工作中经常遇到提示信息框Toast 在点击的时候出现好多次,有时候当前页面你点击完之后退出去Toast还在界面上显示,交互效果不是很好,今天在应用中解决了。其实很简单就是重写Toast,判断Toast是不是第一次生成。如果是null的话就生成新的对象。废话不多说直接上代码。


这是我专门重写的一个Toast类:

package com.example.toastcopyrighttest;

import android.content.Context;
import android.widget.Toast;
/**
* 首先判断toast对象是不是为null,如果是的话就生成对象。
* 否则的话就直接settext
* @author John
*/
public class UtilToast {
private static Toast toast = null;
public static void showToast(Context context, String str){
if (toast == null) {
toast = Toast.makeText(context, str, Toast.LENGTH_SHORT);
}else {
toast.setText(str);
}
toast.show();
}

}


下面是MainActivity,调用Toast:


package com.example.toastcopyrighttest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
* 解决Toast短时间显示的问题,让按钮在点击的时候只显示一次
* @author John
*
*/
public class MainActivity extends Activity {
private Button button;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.but);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
UtilToast.showToast(MainActivity.this, "登录超时");

}
});

}

}


这就是全部代码。


你可能感兴趣的:(Android)