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


猜你喜欢
- XuLIeHua类库using System;using System.Collections; using System.Co
- 开发人员可以用以下两种方式声明UI:一是通过.xml文件(不带预览界面)或者.axml文件(带预览界面)来描述;二是用C#代码实现。&nbs
- 前言这几天同事跟我在升级Android target SDK和build tool版本的时候,碰到了一个非常搞笑的问题,基本可以算作是“坑”
- 相关文章:Java使用POI导出Excel(一):单sheetJava使用POI导出Excel(二):多个sheet相信在大部分的web项目
- Qt文件操作类QFile简介Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基
- 将图片上传到webapp路径下 路径获取方式此方法获取到工程webapp文件夹下String contexPath= request.get
- break和continue的说明break 循环结构,一旦执行,就结束(或跳出)当前循环结构,此关键字的后面,不能
- 本文实例讲述了Spring和Hibernate的整合操作。分享给大家供大家参考,具体如下:一 web配置<?xml version=&
- 1.Spring中的 * 在web开发中, * 是经常用到的功能。它可以帮我们预先设置数据以及统计方法的执行效率等等。今天就来详细的谈一下s
- Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法:首
- 1. Stack1.1 介绍Stack 栈是 Vector 的一个子类,它实现了一个标准的后进先出的栈。它的底层是一个数组。堆栈只定义了默认
- 其实项目网上有很多了,但是教程比较详细的没多少,今天分享的项目从安装部署到代码具体功能都有很详细都说明eladmin 是一款基于 Sprin
- 网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和
- using System;using System.Collections.Generic;using System.ComponentMo
- 根据上下文环境,Java 的关键字 final 的含义有些微的不同,但通常它指的是“这是不能被改变的”。防止改变有两个原因:设计或效率。因为
- 需求:1、listView可以侧滑item,展示删除按钮,点击删除按钮,删除当前的item2、在删除按钮展示时,点击隐藏删除按钮,不响应it
- 一、Container 简介flutter 开发中最核心的是用最少的组件(层次)完成功能开发;Container 前端的盒子模型实现,类似
- 一、堆参数设置-XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志-XX:+UseSerialGC 配置串行回收器
- 本文实例总结了C#子线程更新UI控件的方法,对于桌面应用程序设计的UI界面控制来说非常有实用价值。分享给大家供大家参考之用。具体分析如下:一
- IDEA service层跳转实现类的快捷图标消失了,但别人IDEA同样的代码可以正常看到跳转图标。。(暗示:这只是你的IDEA 编译器的b