- 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();
- Toast
Toast的基本用法吧喇伯,如下所示:
Toast.makeText(context, "things happened", Toast.LENGTH_SHORT).show();
快速連續(xù)點(diǎn)擊了五次按鈕宗侦,Toast就觸發(fā)了五次臂容。這樣的體驗(yàn)其實(shí)是不好的,最佳的做法是將Toast的調(diào)用封裝成一個(gè)接口士骤,寫在一個(gè)公共的類當(dāng)中溶其,如下所示
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();
}
}
調(diào)用的時(shí)候也很簡(jiǎn)單,只需要把Context對(duì)象和Toast要顯示的內(nèi)容傳進(jìn)來(lái)就可以了:
Util.showToast(context, "things happened");
- Snackbar
在使用Snackbar之前敦间,首先需要在app/build.gradle中添加相應(yīng)的依賴:
dependencies {
compile 'com.android.support:design:23.4.0'
}
然后就可以使用Snackbar了瓶逃,它的用法和Toast是比較相似的:
Snackbar.make(view, "data deleted",Snackbar.LENGTH_LONG)
.setAction("Undo", new View.OnClickListener(){
@Override
public void onClick(View v) {
}
})
.show();
這里調(diào)用Snackbar的make()方法來(lái)創(chuàng)建一個(gè)Snackbar對(duì)象,make()方法的第一個(gè)參數(shù)需要傳入一個(gè)view廓块,只要是當(dāng)前界面布局的任意一個(gè)view都可以厢绝,Snackbar會(huì)使用這個(gè)view來(lái)自動(dòng)查找最外層的布局,用于展示Snackbar带猴。第二個(gè)參數(shù)就是Snackbar中顯示的內(nèi)容昔汉,第三個(gè)參數(shù)是Snackbar顯示的時(shí)長(zhǎng)。這些和Toast都是類似的拴清。
接著這里又調(diào)用了一個(gè)setAction()方法來(lái)設(shè)置一個(gè)動(dòng)作靶病,從而讓Snackbar不僅僅是一個(gè)提示,而是可以和用戶進(jìn)行交互的口予。最后調(diào)用show()方法讓Snackbar顯示出來(lái)娄周。
現(xiàn)在你有三種方式可以給用戶提示信息,Dialog沪停、Toast和Snackbar煤辨,下面我們對(duì)這三種方式的使用時(shí)機(jī)做個(gè)總結(jié)吧。
?Dialog:當(dāng)提示信息是至關(guān)重要的木张,并且必須要由用戶做出決定才能繼續(xù)的時(shí)候众辨,使用Dialog。
?Toast:當(dāng)提示信息只是告知用戶某個(gè)事情發(fā)生了舷礼,用戶不需要對(duì)這個(gè)事情做出響應(yīng)的時(shí)候鹃彻,使用Toast。
?Snackbar:以上兩者之外的任何其他場(chǎng)景妻献,Snackbar可能會(huì)是你最好的選擇蛛株。