Android 开发之Dialog,Toast,Snackbar提醒
作者:小朵八 发布时间:2021-05-31 14:27:20
今天给大家带来一篇简单易懂的微技巧文章,并没有什么高深的技术点,但重点是在细节,相信可以给不少朋友带来帮助。
Dialog和Toast所有人肯定都不会陌生的,这个我们平时用的实在是太多了。而Snackbar是Design Support库中提供的新控件,有些朋友可能已经用过了,有些朋友可能还没去了解。但是你真的知道什么时候应该使用Dialog,什么时候应该使用Toast,什么时候应该使用Snackbar吗?先看效果图:
1,Dialog
首先来介绍一下Dialog的用法:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("title")
.setMessage("dialog content")
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
运行在不同版本的手机上显示的效果会不同,但是既然说到了是小技巧,Google已经充分考虑到了这一点,在appcompat-v7库中也提供了一个AlertDialog类:
import android.support.v7.app.AlertDialog;
2,Toast
先看一下Toast的基本用法:
Toast.makeText(context, "things happened", Toast.LENGTH_SHORT).show();
但是如果我们手打滑,点击了5次toast会出现五次,因为是被动的,所以不能及时让其消失;然而我带给大家的小技巧就是用ToastUtils.java来封装:
package com.gyq.dialog;
import android.content.Context;
import android.widget.Toast;
/**
* 将Toast封装成一个接口,写在公共的工具类中
* author: gyq
* create at 2017/1/11 14:30
*/
public class ToastUtils {
private static Toast toast;
public static void showToast(Context context,
String content) {
if (toast == null) {
toast = Toast.makeText(context,
content,
Toast.LENGTH_SHORT);
} else {
toast.setText(content);
}
toast.show();
}
}
然后使用在其他类中:
ToastUtils.showToast(this,"this is a toast !");
3,Snackbar
首先我们要在app/build.gradle闭包下:
compile 'com.android.support:design:24.2.1'
然后是使用:
Snackbar.make(mSnackbarBtn,"data delete",Snackbar.LENGTH_LONG)
.setAction("yes", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
4,小结
现在你有三种方式可以给用户提示信息,Dialog、Toast和Snackbar,下面我们对这三种方式的使用时机做个总结:
Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/duoduo_11011/article/details/54343694
猜你喜欢
- protected bool IsChineseLetter(string input,int index){int code = 0;in
- 本文实例为大家分享TextBox和PasswordBox加水印的方法,供大家参考,具体内容如下Textbox加水印Textbox加水印,需要
- eclipse的代码提交到git,下载后用新的ide工具IJ 进行开发一、导入项目eclipse里有workSpace 但是在IDEA中没有
- Mybatis Log Plugin使用今天发现大部分猿友关于查看执行sql语句的方法,只知道将其输出到控制台。然而还有更简便的方法,就是使
- 如何解决yml没有spring小叶子标志我的idea springboot项目中有两个.yml文件,一个application.yml,一个
- LinkedList与ArrayList都是List接口的具体实现类。LinkedList与ArrayList在功能上也是大体一致,但是因为
- 今天被数据大神说了,对接第三方接口返回的json字段我想用驼峰形式,他说我这样不专业。所以就改了,认怂。记住以后再次对接rest接口,返回的
- 在装2个不同版本JDK时遇到了这个问题,在网上钩了一吧!查到一个讲解比较好的资料。一:要解决的问题我们在尝鲜 JDK1.5 的时候,相信不少
- 前言这篇文章主要介绍Spring Boot的统一功能处理模块,也是AOP的实战环节。1.用户登录权限效验在学习Spring AOP之前,用户
- 目录了解程序集如何在C#.NET中加载程序集,模块和引用.NET中的程序集绑定绑定重定向当问题开始发生时故障排除边注References了解
- jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS
- 1.根据单个分隔字符用split截取例如string st="GT123_1";string[] sArray=st.s
- Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡
- 介绍Java桥梁模式(也称桥接模式)(Bridge Pattern)是一种设计模式,它将抽象和实现分离,使它们可以独立地变化.它通过一个大类
- 本文实例讲述了C#根据反射和特性实现ORM 映射的方法。分享给大家供大家参考。具体如下:(一)关于反射什么是反射?反射就是在运行时,动态获取
- Unity打开Unity Ctrl+9,打开Unity商店,下载TexturePacker Importer插件这个插件是用来解析图集文件的
- 整理文档,搜刮出一个android 通过MediaRecorder实现简单的录音示例,稍微整理精简一下做下分享。MainActivitypa
- Java BlockingQueue接口java.util.concurrent.BlockingQueue表示一个可以存取元素,并且线程安
- 前言一切准备工作就绪时就先实现一个关注公众号后向客户端推送一条消息。关注后推送消息需要一个get请求、一个post请求,get请求主要是为了
- 一、基本使用使用示例:// 初始化BigDecimal bd1=new BigDecimal("456");BigDec