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

Dialog 和 Toast_ide

现在这个Dialog是Material Design风格的,因为我是在6.0系统上运行的,因此会自动赋予这样的风格。但是如果在老版本系统上运行,比如说2.3系统,会是什么样的效果呢?运行一下就知道了,如下图所示:

Dialog 和 Toast_快捷键_02

Google已经充分考虑到了这一点,在appcompat-v7库中也提供了一个AlertDialog类,完整路径是:

android.support.v7.app.AlertDialog

Dialog的作用是给用户一个提示信息并让用户根据提示做出判断。而Dialog的特征就是,它会阻止你原本正在进行的操作,必须停止下来对Dialog进行处理。但是,大多数的人可能并不喜欢这样被打断,也许用户正在处理一项重要的操作,突然弹出一个Dialog遮挡住了他原本的操作,这个时候用户会变得很恼火。

因此,使用Dialog的时候还是谨慎一点比较好,尽量不要给用户带来糟糕的体验感。

2.Toast

代码很简单, Studio 有个快捷键,Toa -> 自动提示 Toast,但是有个问题,如果多次点击按钮,可能会连续弹出 Toast ,但是我们只需要显示一次,这就需要我们进行封装

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的方式并不一样,这里会先判断Toast对象是否为空,如果是空的情况下才会调用makeText()方法来去生成一个Toast对象,否则就直接调用setText()方法来设置显示的内容,最后再调用show()方法将Toast显示出来。由于不会每次调用的时候都生成新的Toast对象,因此刚才我们遇到的问题在这里就不会出现了。

Util.showToast(context, "things happened");