Android 开发之Dialog,Toast,Snackbar提醒
程序员文章站
2023-11-27 08:41:04
今天给大家带来一篇简单易懂的微技巧文章,并没有什么高深的技术点,但重点是在细节,相信可以给不少朋友带来帮助。
dialog和toast所有人肯定都不会陌生的,这个我们平时...
今天给大家带来一篇简单易懂的微技巧文章,并没有什么高深的技术点,但重点是在细节,相信可以给不少朋友带来帮助。
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可能会是你最好的选择。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!