Android--通知之Toast
前言
这篇博客讲解一下Android下的一个简单信息提示的方式:Toast。如果一直看我的博客,会发现在之前的Demo中,一直有用到Toast去提示消息,在这篇博客中就专门讲它。Toast提供一个浮动的简单的小显示块,并且不影响任何其他操作,仅仅用于提示信息,并且会在超时后,自动消失。因为它的及时性已经自动消失的特性,不适合提示一些重要的信息,如果有重要的信息,可以使用Notification提示用,Notification之后会介绍。在本片博客中将讲解Toast的常规使用,以及特殊的属性、方法的使用,并且会说明如何使用Toast创建一个自定义的内容,并且最后会对以上讲解的内容给出代码示例。
Toast
Toast是为了给当前视图显示一个浮动的显示块,它永远不会获得焦点。一般用于提示一些不那么引人注目,但是又希望用户看见的消息,无需用户自己维护它的消失。
如果只是提示简单的信息,使用Android为Toast提供的两个静态的方法最为方便,它们会返回一个Toast对象,如果需要显示,只需要调用show()方法显示即可,下面是这两个方法的签名:
- static Toast makeText(Context context,int resId,int duration).
- static Toast makeText(Context context,CharSequence text,int duration)
上面两个方法,参数大致相同,一个上下文对象Context,一个显示的消息来源,一个设置持续时间。消息来源可以指定String资源,使用<string.../>标签在XML资源文件中定义,还可以指定一个字符串用于消息展示。最后的duration参数设置了Toast的持续时间,一般使用Toast自带的两个整形的常量:LENGTH_LONG(1,时间稍长)、LENGTH_SHORT(0,时间稍短),针对不同的使用场景,选择不用的持续时间。
Toast消息的默认显示位置在屏幕的中间偏下,Android也为开发者提供了方法设置Toast消息的位置,使用setGravity(int gravity, int xOffset, int yOffset)方法即可设置,它有三个参数,gravity设置一个重力方向,另外两个设置水平和垂直方向的偏移量。
示例:使用Toast提示一个简单的消息,显示在屏幕中间。
btnToast1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast toast=Toast.makeText(MainActivity.this,"Toast提示消息",Toast.LENGTH_SHORT );
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
});
显示效果:
自定义消息
无论是从美观的角度、还是用户视觉体验的角度,很多时候都不仅仅需要显示一简单的文本信息。如果需要显示用户自定义的消息,那么就不能使用上面介绍的静态方法来得到一个Toast对象,而是需要使用Toast的构造方法进行初始化,然后对相应的属性进行设置。一般对于自定义布局的显示,会使用XML定义好一个布局文件,这样清晰明朗。
步骤如下:
- 使用LayoutInflater.from(Context).inflate(int , ViewGroup)方法动态获得需要显示的View。
- 对View中的控件进行必要操作。
- 使用构造函数初始化Toast。
- 使用Toast.setView(View)进行设置。
- 最后使用show()方法展示Toast消息。
下面通过一个示例展示自定义布局在Toast中的显示:
Toast消息的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#DAAA"
>
<ImageView android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
/>
</LinearLayout>
Toast消息的显示代码:
btnCustomToast.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.toast_layout,null );
TextView tv=(TextView)view.findViewById(R.id.text);
tv.setText("自定义提示Toast");
Toast toast=new Toast(MainActivity.this);
toast.setView(view);
toast.show(); }
});
效果展示:
总结
以上就讲解了Toast的使用,在Android中,Toast提示消息的方式会经常被用到,所以掌握它是有必要的,之后会介绍另外一种消息提示方式,Notification。
Android--通知之Toast的更多相关文章
- Android 通知机制 Toast和Notification
Android常用的反馈系统状态信息的方式主要有三种 Toast提醒 通知栏提醒 对话框提醒 三种提醒分别适用于页面的提示.系统交互事件的通知和非常重要的提醒: 一.Toast Toast toast ...
- 背水一战 Windows 10 (107) - 通知(Toast): 提示音, 特定场景
[源码下载] 背水一战 Windows 10 (107) - 通知(Toast): 提示音, 特定场景 作者:webabcd 介绍背水一战 Windows 10 之 通知(Toast) 提示音 特定场 ...
- 背水一战 Windows 10 (106) - 通知(Toast): 通过 toast 打开协议, 通过 toast 选择在指定的时间之后延迟提醒或者取消延迟提醒
[源码下载] 背水一战 Windows 10 (106) - 通知(Toast): 通过 toast 打开协议, 通过 toast 选择在指定的时间之后延迟提醒或者取消延迟提醒 作者:webabcd ...
- 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框)
[源码下载] 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框) 作者:webabcd 介绍背水一战 Wind ...
- 背水一战 Windows 10 (104) - 通知(Toast): 纯文本 toast, 短时 toast, 长时 toast, 图文 toast
[源码下载] 背水一战 Windows 10 (104) - 通知(Toast): 纯文本 toast, 短时 toast, 长时 toast, 图文 toast 作者:webabcd 介绍背水一战 ...
- 背水一战 Windows 10 (103) - 通知(Toast): 基础, 按计划显示 toast 通知
[源码下载] 背水一战 Windows 10 (103) - 通知(Toast): 基础, 按计划显示 toast 通知 作者:webabcd 介绍背水一战 Windows 10 之 通知(Toast ...
- Android弹出Toast工具类总结
Android弹出Toast工具类总结,包括系统自带的,也包括自定义的. public class ToastUtil { public ToastUtil() { } public static T ...
- Android之提示Toast
步骤: 设置监听事件步骤1.事件源,如按键 btn_simple2.事件 OnClick3.监听器new OnClickListener3.绑定事件源与事件 setOnClickListener(ne ...
- Android自己定义Toast
一.引言 在开发的过程中你会发现Android自身的Toast提示有很多限制,比方我想自己定义Toast的动画.自己定义一个美观的View显示在Toast中.很多其它的是让Toast显示指定的时长等等 ...
- android小知识之自定义通知(toast)
Toast是较为熟悉的通知,但默认方式比较单调,可以根据自己的需求自定义,在统一UI风格的时候可以单独拿出来做一个工具类来使用. 下面我在Fragment中定义的一个按键弹出自定义Toast,在Act ...
随机推荐
- 【Java】学习笔记(1)
Java数据类型: 基本数据类型:(变量在栈中)数值型:byte(1个字节) short(2个字节) int(四个字节) long(8个字节) ,float(4字节) double(8字节) 字符型: ...
- JSP:getOutputStream() has already been called for this response
JSP页面,用小脚本显示一张图片 <%@page import="java.io.OutputStream"%> <%@page import="jav ...
- IE 11和const的兼容问题
说好的IE11兼容javascript中的常量类型 const 呢 ?可能并没有完全兼容 项目中遇到一个问题,采用google浏览器访问没问题,在本地jetty启动,IE11也可以正常访问,然而当我将 ...
- java多线程中注入Spring对象问题
web应用中java多线程并发处理业务时,容易抛出NullPointerException. 原因: 线程中的Spring Bean没有被注入.web容器在启动时,没有提前将线程中的bean注入,在线 ...
- vue+betterscrool实现横向弹性滚动
如何利用better-scroll在vue中实现横向滚动,并且滚动到两端以后会有弹性效果 1.使用npm下载better-scroll 2.按需引入better-scroll 3.需要2个盒子装起来组 ...
- 2019.03.29 bzoj3323: [Scoi2013]多项式的运算(非旋treap)
传送门 题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作 将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v 将xLx^LxL到xRx^RxR这些项的系 ...
- 编程感悟-建立好代码sop
1.最近学django和python,发现很多的函数记不住,这时候我百度了一下,发现记不住是程序员的正常情况, 这下心安理得多了,记好笔记和咱的sop吧,会很快. 社会是不是也这样,好多东西也记不住, ...
- <c:forEach>循环列表,获取勾选的checkbox中某个<td>的值
<table> <!--列表表头 开始 --> <tr> <th><input type="checkbox" name=&q ...
- Linux 解压/压缩xxx.zip格式(unZip Zip的安装和使用)
Linux系统没有自带的压缩解压工具:需要我们自己安装:当压缩包为.zip格式时,需要安装zip包 1.apt-get安装: apt-get install zip 2.yum安装: yum inst ...
- DNS: Internet’s Directory
关于DNS 互联网上几乎一切活动都以DNS请求开始.DNS(Domain Name System)是Internet的目录.访问URL时,设备所要做的第一件事就是询问目录,根据域名查出IP地址. 查询 ...