Android之Toast的高级使用

简介: 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的使用可查看上一篇文章:http://blog.csdn.net/yechaoa/article/details/60572384


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


显示:

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

取消:

MyUtil.cancelToast();

目录
相关文章
|
6月前
|
XML Android开发 数据格式
ConstraintLayout 2,Android高级开发面试
ConstraintLayout 2,Android高级开发面试
|
5月前
|
XML Java API
30. 【Android教程】吐司提示:Toast 的使用方法
30. 【Android教程】吐司提示:Toast 的使用方法
215 2
|
6月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
6月前
|
Android开发
Android高级开发面试题以及笞案整理,实战解析
Android高级开发面试题以及笞案整理,实战解析
|
6月前
|
监控 安全 网络安全
网络安全与信息安全:防护之道与加密技术构建高效Android应用:从基础到高级的内存优化策略
【5月更文挑战第27天】在数字化时代,数据成为了新的货币。然而,随着信息技术的蓬勃发展,网络安全漏洞和信息泄露事件层出不穷,对个人隐私和企业安全构成了严重威胁。本文将深入探讨网络安全的重要性,分析当前常见的网络攻击方式,并重点分享关于加密技术和提升安全意识的知识。通过阅读本文,读者将获得如何有效防御网络威胁、保护个人和企业信息安全的策略。
|
6月前
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
|
6月前
|
设计模式 SQL 前端开发
2024年阿里Android高级面试题分享,送给正在迷茫的你
2024年阿里Android高级面试题分享,送给正在迷茫的你
|
Java Android开发
Android Studio 的一些高级使用技巧
Android Studio 的一些高级使用技巧
127 0
|
12月前
|
Android开发
android之Toast使用
android之Toast使用
101 0
|
XML Android开发 数据格式
Android上机实验-3 高级组件的使用
Android上机实验-3 高级组件的使用
134 1