Android之Toast的高级使用
【摘要】
Toast作为提示,一般在用户进行某个操作之后出现,告诉用户结果或给用户提示,过一会就自动消失,不会阻碍用户操作。
1.一般使用
Toast.makeText(MainActivity.this, "testContent", Toast.LENGTH_SHORT).show();
参数1:上下文。参数二:提示内容。...
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();
-
}
-
}
-
-
}
在Activity中或者BaseActivity的onCreate中加上
SpUtil.setActivity(this);
关于SpUtil的使用可查看上一篇文章:http://blog.csdn.net/yechaoa/article/details/60572384
两个util配合使用效果更佳,onCreate中加一次就行了。
MyUtil.showToast("支付成功");
MyUtil.cancelToast();
文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/yechaoa/article/details/60572130
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)