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();

目录
相关文章
|
5月前
|
Android开发
android之Toast使用
android之Toast使用
48 0
|
9月前
|
XML Android开发 数据格式
Android上机实验-3 高级组件的使用
Android上机实验-3 高级组件的使用
83 1
|
11月前
|
Android开发 数据安全/隐私保护 开发者
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
在使用手机的时候经常会见到屏幕的中下方会弹出消息提示框,它就是Toast。 ApeForms中也实现了非常简洁易用Toast,与Android的Toast不同的是,ApeForms允许开发者设置不同的弹出模式。此外还针对PC端有鼠标的情况进行了改进,当鼠标悬停于消息弹出框之上时弹出框不会消失。
298 0
ApeForms | C#WinForm弹出简易的消息提示框 (仿Android Toast消息提示)
|
Android开发
Android 快别用Toast了,来试试Snackbar
🔥 应用场景 🔥 源码 💥 Toast.setGravity() 💥 Toast.isSystemRenderedTextToast() 🔥 Toast 提供的方法 💥 Toast.setView() 源码 🔥 Snackbar 💥 代码实现 💥 效果 💥 工具类
906 0
Android 快别用Toast了,来试试Snackbar
|
存储 消息中间件 缓存
Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncT
Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncT
119 0
|
Android开发
android中的提示信息显示方法(toast应用)
android中的提示信息显示方法(toast应用)
232 1
|
API 数据处理 语音技术
Android高级音频应用
Android高级音频应用
122 0
|
API Android开发
干货|APP自动化Android特殊控件Toast识别
干货|APP自动化Android特殊控件Toast识别
|
Android开发
Android 硬布局item的高级写法
Android 硬布局item的高级写法
185 0
Android 硬布局item的高级写法
|
XML 前端开发 JavaScript
技术分享 | app自动化测试(Android)–高级定位技巧
技术分享 | app自动化测试(Android)–高级定位技巧