在工作中经常遇到提示信息框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, "登录超时");
}
});
}
}
这就是全部代码。
本文介绍了一种解决Toast在短时间内重复显示的方法,通过重写Toast类来确保消息仅展示一次,提高了用户体验。
799

被折叠的 条评论
为什么被折叠?



