zoukankan      html  css  js  c++  java
  • Android开发笔记(十八)——Toast

    Toast是一个消息提示组件

    • Toast 是Android系统中一种消息提示框类型,是一个View 视图,快速的为用户显示少量的信息。Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,无法被点击,不影响用户的输入等操作,主要用于 一些帮助 / 提示。
    • Toast 最常见的创建方式是使用静态方法 Toast.makeText
    Toast.makeText(getApplicationContext(),"Toast",Toast.LENGTH_LONG).show();
    

    Toast.LENGTH_SHORT大概显示时间为1秒,
    Toast.LENGTH_LONG大概显示时间为3秒

    设置显示的位置

    居中的显示:

    Toast toastCenter = Toast.makeText(getApplicationContext(),"居中Toast",Toast.LENGTH_LONG);
    toastCenter.setGravity(Gravity.CENTER,0,0);
    toastCenter.show();
    

    自定义显示内容(如添加一张图片)

    带图片效果:
    这里先在 layout_toast.xml 中设置了一个名称为 iv_toasttv_toast 的ImageView和TextView

    Toast toastCustom = new Toast(getApplicationContext());
    LayoutInflater inflater = LayoutInflater.from(ToastActivity.this);
    View view = inflater.inflate(R.layout.layout_toast, null);
    ImageView imageView = view.findViewById(R.id.iv_toast);
    TextView textView = view.findViewById(R.id.tv_toast);
    imageView.setImageResource(R.drawable.xiaolian);
    textView.setText("自定义Toast");
    toastCustom.setView(view);
    toastCustom.setDuration(Toast.LENGTH_LONG);
    toastCustom.show();
    

    目前为止的效果:

    这里连着点击的时候,Toast显示会排队展示,但是实际开发过程中希望后一个Toast把前一个抵消掉,不管点击多少下,以最后一次点击为准。
    这里可以封装一个简单的类

    简单封装

    package com.example.myapplication.util;
    
    import android.content.Context;
    import android.widget.Toast;
    
    public class ToastUtil {
        public static Toast mToast;
        public static void showMsg(Context context,String msg){
            if (mToast==null) {
                mToast=Toast.makeText(context,msg,Toast.LENGTH_LONG);
            }else {
                mToast.setText(msg);
            }
            mToast.show();
        }
    }
    
    

    之后在想要使用Toast的时候就可以直接调用 ToastUtil 中的 showMsg 函数即可。如:

    ToastUtil.showMsg(getApplicationContext(),"包装过的Toast");
    

    可以看到不管点击多少下,Toast不会出现排队的现象。

  • 相关阅读:
    联网大数据运用的九大领域
    写给喜欢数据分析的初学者
    里阳起诉国外企业,中小企业海外维权绝不手软
    自己动手写CPU之第七阶段(2)——简单算术操作指令实现过程
    我为创业狂——成都传智播客学员故事
    Python学习笔记18:标准库之多进程(multiprocessing包)
    Android开发:LocationManager获取经纬度及定位过程(附demo)
    [nio]dawn的基本概念
    iOS_39_触摸解锁
    POJ 2965:The Pilots Brothers' refrigerator
  • 原文地址:https://www.cnblogs.com/yangdd/p/13363240.html
Copyright © 2011-2022 走看看