Toast在实际Android开发中使用率是非常高的。默认的写法就不在此处赘述了。
下面是Toast的简单使用工具类
public class ToastUtils {
private ToastUtils() {
throw new UnsupportedOperationException("cannot be instantiated");
}
public static boolean isShow = true;
/**
* 短时间显示Toast
*
* @param context
* @param message
*/
public static void showShort(Context context, CharSequence message) {
if (isShow)
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
/**
* 短时间显示Toast
*
* @param context
* @param message
*/
public static void showShort(Context context, int message) {
if (isShow)
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
/**
* 长时间显示Toast
*
* @param context
* @param message
*/
public static void showLong(Context context, CharSequence message) {
if (isShow)
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
/**
* 长时间显示Toast
*
* @param context
* @param message
*/
public static void showLong(Context context, int message) {
if (isShow)
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
/**
* 自定义显示Toast时间
*
* @param context
* @param message
* @param duration
*/
public static void show(Context context, CharSequence message, int duration) {
if (isShow)
Toast.makeText(context, message, duration).show();
}
/**
* 自定义显示Toast时间
*
* @param context
* @param message
* @param duration
*/
public static void show(Context context, int message, int duration) {
if (isShow)
Toast.makeText(context, message, duration).show();
}
}
public interface ToastFunctions {
/**
* 直接显示Toast
*
* @param context
* 上下文
* @param text
* 文本信息
* @param duration
* 显示时长
*/
public void immediateToast(Context context, String text, int duration);
/**
* 自定义位置的Toast
*
* @param context
* 上下文
* @param text
* 文本信息
* @param duration
* 显示时长
* @param gravity
* 位置
*/
public void ToastLocation(Context context, String text, int duration,
int gravity);
/**
* 带图片的Toast
*
* @param context
* 上下文
* @param text
* 文本信息
* @param duration
* 显示时长
* @param resId
* 图片资源id
*/
public void ToastWithPic(Context context, String text, int duration,
int resId);
/**
* 自定义的Toast
*
* @param context
* 上下文
* @param text
* 文本信息
* @param duration
* 显示时长
* @param view
* 布局文件xml文件的view对象
*
* View的创建如下:
* //自定义Toast主要是利用LayoutInflater来实现
* LayoutInflater layoutInflater = getLayoutInflater();
* //加载一个布局文件,自定义的布局文件 View
* view = layoutInflater.inflate(layoutId,null);
*/
public void ToastBySelf(Context context, String text, int duration,
View view);
}
public class ToastUtil implements ToastFunctions {
private Toast toast = null;
@Override
public void immediateToast(Context context, String text, int duration) {
toast = Toast.makeText(context, text, duration);
toast.show();
}
@Override
public void ToastLocation(Context context, String text, int duration,
int gravity) {
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(gravity, 0, 0);
toast.show();
}
@Override
public void ToastWithPic(Context context, String text, int duration,
int resId) {
toast = Toast.makeText(context, text, duration);
// 通过Toast创建一个LinearLayout
LinearLayout layout = (LinearLayout) toast.getView();
// 创建一个ImageView对象,并添加到LinearLayout中
ImageView imageView = new ImageView(context);
imageView.setImageResource(resId);
// 添加
layout.addView(imageView);
// 显示Toast
toast.show();
}
@Override
public void ToastBySelf(Context context, String text, int duration, View view) {
// Toast
toast = new Toast(context);
// 设置Toast显示时长
toast.setDuration(duration);
// 设置Toast的View对象
toast.setView(view);
// 显示Toast
toast.show();
}
}
//调用方法1 //Thread th=new Thread(this); //th.start(); //调用方法2 handler.post(new Runnable() { @Override public void run() { showToast(); } }); Java代码 public void showToast(){ Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他线程中调用显示", Toast.LENGTH_SHORT); toast.show(); } Java代码 Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { int what=msg.what; switch (what) { case 1: showToast(); break; default: break; } super.handleMessage(msg); } }; Java代码 @Override public void run() { handler.sendEmptyMessage(1); }