项目开发经常用到自定义布局的Toast,写一个Toast工具类需要用的地方直接调用showText
public class KdToast extends Toast {
private static KdToast toast;
public KdToast(Context context) {
super(context);
}
public static void showText(Context context, CharSequence text) {
showToast(context, text, Toast.LENGTH_SHORT);
}
private static void showToast(Context context, CharSequence text, int time) {
// 初始化一个新的Toast对象
initToast(context, text);
// 设置显示时长
// 显示Toast
toast.show();
}
private static void initToast(Context context, CharSequence text) {
try {
cancelToast();
toast = new KdToast(context);
// 获取LayoutInflater对象
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 由layout文件创建一个View对象
View layout = inflater.inflate(R.layout.toast_layout, null);
// 吐司上的文字
TextView toast_text = (TextView) layout.findViewById(R.id.toast_text);
toast_text.setText(text);
toast.setView(layout);
toast.setGravity(Gravity.BOTTOM, 0, 70);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 隐藏当前Toast
*/
public static void cancelToast() {
if (toast != null) {
toast.cancel();
}
}
public void cancel() {
try {
super.cancel();
} catch (Exception e) {
}
}
@Override
public void show() {
try {
super.show();
} catch (Exception e) {
}
}