2 u010539561 u010539561 于 2016.03.09 10:51 提问

封装类似Toast工具,单例模式,对象是否可以无限使用?

在一个项目中封装好一个Toast类工具,是否可以在所有Activity类中重复使用,使用的时候在Activity哪个回调方法中初始化?谢谢!!

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.09 11:00

toast需要在当前activity中添加ui组件信息,显示界面。
所以说只用一个activity初始化成单例肯定不行。
可以继承toast,重写和扩充。
然后activity还是该当做参数传入。

VqwertyV
VqwertyV   2016.03.09 17:27

可以的,初始化的时候传入Application的Context,然后封装一个方法只要传入字符串就可以。
public class ToastUtil{
private static Toast toast;
private static Context context

public static void init(Application context){
    this.context = context;
}

public void showToast(Stirng msg){
    if(toast == null){
        toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
    }
    toast.show();
}

}
简单版的

VqwertyV
VqwertyV   2016.03.09 17:29

在自己的Application中初始化
public class MyApplication extends Application{
public void onCreate(){
super.onCreate();
ToastUtil.init(this);
}
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!