Android提醒Dialog、Toast和Snackbar ---站在巨人的肩膀上学习总结
来源:互联网 发布:java 键值对集合 编辑:程序博客网 时间:2024/04/29 13:35
详情请开偶像博客:http://blog.csdn.net/guolin_blog/article/details/51336415
一:Dialog 的使用场景
Dialog的作用是给用户一个提示信息,并让用户根据提示做出判断。而Dialog的特征就是,它会阻止你原本正在进行的操作,必须停止下来对Dialog进行处理。但是,大多数的人可能并不喜欢这样被打断,也许用户正在处理一项重要的操作,突然弹出一个Dialog遮挡住了他原本的操作,这个时候用户会变得很恼火
1,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) { } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .show();
2,注意:2.3系统的Dialog很丑,不具有Material Design风格想在老版本下能有Material Design风格必须使用appcompat-v7库中也提供了一个AlertDialog类,完整路径如下
android.support.v7.app.AlertDialog
**这样使用的Dailog就是有Material Design 风格的Dailog,效果如下图
二:Toast的使用场景:
Toast只会弹出一段信息,告诉用户某某事情已经发生了,过一段时间后就会自动消失。它完全不会阻挡用户的任何操作,甚至用户也可以完全不用理会Toast。
1,Toast的使用我就不再写了,这里写一个避免多次点击弹出多次Toast的bug解决方案
2,方式一:
public class Util { 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(); }}
避免每次调用都创建新的Toast对象,解决问题
3,方式二:
private boolean isFristClick = true; if (isFristClick) { ToastUtil.showShort(MessageListActivity.this, "您没有消息可清除"); isFristClick = false; } else if ((System.currentTimeMillis() - fristTime) > 2000) { ToastUtil.showShort(MessageListActivity.this, "您没有消息可清除"); fristTime = System.currentTimeMillis(); }
这种方式是控制两次点击事件的差来解决的,这里使用推荐方式一
三:SnackBar的使用场景:
Snackbar和Toast比较相似,但是用途更加广泛,并且它是可以和用户进行交互的。Snackbar使用一个动画效果从屏幕的底部弹出来,过一段时间后也会自动消失。
1,使用SnackBar之前需要添加依赖:
dependencies { compile 'com.android.support:design:23.4.0'}
2,简单实用的案例:
Snackbar.make(view, "data deleted",Snackbar.LENGTH_LONG) .setAction("Undo", new View.OnClickListener(){ @Override public void onClick(View v) { } }) .show();
这里调用Snackbar的make()方法来创建一个Snackbar对象,make()方法的第一个参数需要传入一个view,只要是当前界面布局的任意一个view都可以,Snackbar会使用这个view来自动查找最外层的布局,用于展示Snackbar。第二个参数就是Snackbar中显示的内容,第三个参数是Snackbar显示的时长。这些和Toast都是类似的。接着这里又调用了一个setAction()方法来设置一个动作,从而让Snackbar不仅仅是一个提示,而是可以和用户进行交互的。最后调用show()方法让Snackbar显示出来。
最后总结:现在你有三种方式可以给用户提示信息,Dialog、Toast和Snackbar
1, Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
2,Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
3,Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
0 0
- Android提醒Dialog、Toast和Snackbar ---站在巨人的肩膀上学习总结
- Android提醒技巧,Dialog、Toast和Snackbar
- Android提醒,Dialog、Toast和Snackbar。
- Android提醒技巧,Dialog、Toast和Snackbar的使用区别
- 站在巨人的肩膀上学习
- 站在巨人的肩膀上学习
- 站在巨人的肩膀上学习Android开发
- 站在巨人的肩膀上学习Android开发
- 站在巨人的肩膀上学习Android开发
- 站在巨人的肩膀上学习Android开发
- Android属性动画(一) ------ 站在巨人的肩膀上学习总结
- Android属性动画(二) ------ 站在巨人的肩膀上学习总结
- Android属性动画(三) ------ 站在巨人的肩膀上学习总结
- Android提醒:Dialog,Toast,Snackbar
- Android提醒微技巧Dialog、Toast和Snackbar
- Android提醒微技巧,Dialog、Toast和Snackbar
- Android提醒微技巧Dialog、Toast和Snackbar
- Android LayoutInflater原理分析,带你一步步深入了解View(一) ---站在巨人的肩膀上学习总结
- VC++编程实现修改EXE文件图标
- Cow Bowling
- Convert dictionary values into array
- [WinForm]C# Listview中添加Button
- html5的一些新增标签。。
- Android提醒Dialog、Toast和Snackbar ---站在巨人的肩膀上学习总结
- JVM参数,启动jar 包以及 启动tomcat的 JVM参数设置
- 【通讯术语】RADIUS
- Android : 破解apk
- iOS 封装SDK
- 28. Implement strStr()
- myeclipse 10的破解以及运行run.bat错误或者双击立即消失的问题
- javascript 引用类型 - Function类型(特性)
- 版本更新