0
点赞
收藏
分享

微信扫一扫

Android之Toast的高级使用

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的使用可查看上一篇文章​

两个util配合使用效果更佳,onCreate中加一次就行了。


显示:


MyUtil.showToast("支付成功");

取消:


MyUtil.cancelToast();



举报

相关推荐

0 条评论