我们都知道Toast需要一个上下文Context,可是这样写着很不方便,有时一个服务中另开的线程需要弹出Toast,上下文不好找吧。
下面就给出一个“全局”Toast,只需要给他要弹出的信息即可。use it, life will be easier :)
原理:比如有个MainActiviy,给它声明定义一个静态公开的上下文Context成员context。在MainActivity创建时context = this;就好。这样就得到了一个全局的上下文。利用它,很好实现全局Toast了吧。下面看代码实现
import android.content.Context;
import android.widget.Toast;
/**
* Created by wjsay on 2017/12/25.
*/
public class ToastUtils {
private static Context context;
private static Context getContext() {
if(context == null) {
context = MainActivity.context;
}
return context;
}
public static void showShortToast(String msg) {
Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show();
}
public static void showLongToast(String msg) {
Toast.makeText(getContext(), msg, Toast.LENGTH_LONG).show();
}
public static void showToast(String msg) {
showShortToast(msg); //默认showShortToast
}
}
用着挺方便的。
--by myorange
2017-12-25