Toast作为提示,一般在用户进行某个操作之后出现,告诉用户结果或给用户提示,过一会就自动消失,不会阻碍用户操作。
1.一般使用
Toast.makeText(MainActivity.this, "testContent", Toast.LENGTH_SHORT).show();
参数1:上下文。参数二:提示内容。参数三:显示时长。
Toast.LENGTH_SHORT是短时间内。Toast.LENGTH_LONG则与之相反。
2.高级使用(自定义布局,控制显示位置、文字大小,避免多次点击多次显示,主线程子线程)
a.封装
public class MyUtil { /** * Toast */ private static Toast toast; public static void showToast(final String msg) { //主线程 if ("main".equals(Thread.currentThread().getName())) { creatToast(msg); } else { //子线程 SpUtil.getActivity().runOnUiThread(new Runnable() { @Override public void run() { creatToast(msg); } }); } } /** * 避免多次点击多次显示 * @param msg */ private static void creatToast(String msg) { if(toast==null){ //创建 toast = Toast.makeText(SpUtil.getActivity(), msg, Toast.LENGTH_SHORT); }else{ //直接赋值 toast.setText(msg); } //引用自定义布局 LinearLayout linearLayout = (LinearLayout) toast.getView(); TextView messageTextView = (TextView) linearLayout.getChildAt(0); //设置显示位置 toast.setGravity(Gravity.CENTER, 0, 0); //设置文字大小 messageTextView.setTextSize(15); toast.show(); } /** * 取消,页面跳转之后,上一个页面的toast应该立马消失,此方法在Activity的onDestroy中调用即可 */ public static void cancelToast() { if(toast!=null){ toast.cancel(); } } }
b.使用
在Activity中或者BaseActivity的onCreate中加上
SpUtil.setActivity(this);
关于SpUtil的使用可查看上一篇文章:http://blog.csdn.net/yechaoa/article/details/60572384
两个util配合使用效果更佳,onCreate中加一次就行了。
显示:
MyUtil.showToast("支付成功");
取消:
MyUtil.cancelToast();