前言
項(xiàng)目中為了方便交互,及用戶體驗(yàn)等方面的原因,不少地方會(huì)用到Dialog,網(wǎng)上有很多非常優(yōu)秀的自定義的Dialog工具,此處,我們不講寫那么寫,我們寫最基礎(chǔ)的使用方法。
目錄
- 簡(jiǎn)單提示框
- 單選提示框
- 復(fù)選提示框
- 列表顯示提示框
- 進(jìn)度條加載
- 加載WebView網(wǎng)頁(yè)
- 自定義layout布局
demo存儲(chǔ)位置記錄:D:\android studio work space\work09\PrimordialDialog
Dialog常用的API
- AlertDialog.Builder :Dialog對(duì)象
- create():創(chuàng)建Dialog對(duì)象
- show():顯示提示框
- setTitle():設(shè)置標(biāo)題
- setMessage():設(shè)置內(nèi)容
- setPositiveButton():設(shè)置正向點(diǎn)擊按鈕
- setNegativeButton():設(shè)置反向點(diǎn)擊按鈕
- dismiss():移除Dialog對(duì)象
- setSingleChoiceltems():設(shè)置單選列表
- setMultiChoiceItems():設(shè)置復(fù)選列表
- setCancelable():設(shè)置點(diǎn)擊提示框外部,是否消失
- setItems():設(shè)置item列表數(shù)據(jù)和監(jiān)聽事件
簡(jiǎn)單提示框
最簡(jiǎn)單的Dialog彈框,其實(shí)就是一個(gè)“提示標(biāo)題”、“提示內(nèi)容”、“結(jié)束/確定”、“取消”幾個(gè)元素;同時(shí)可以設(shè)置builder.setCancelable(false/true)點(diǎn)擊Dialog之外處,是否關(guān)閉彈框,均可設(shè)置。效果圖如下:

簡(jiǎn)單提示框效果圖
public void showSimpleDialog(final Activity activity) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("友情提示");
builder.setMessage("此處填寫提示內(nèi)容?");
builder.setCancelable(false);
builder.setPositiveButton("結(jié)束", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.create().show();
}
單選提示框
遇到單選的時(shí)候,有時(shí)候我們就想到了單向選擇框,原生的Dialog中也提供了這樣的方法,那么接下來,我們就簡(jiǎn)單的用示例代碼展示一下,效果圖如下:

單選提示框效果圖
public void showSingleDialog(final Activity activity,String[] sex) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("請(qǐng)選擇性別");
builder.setSingleChoiceItems(sex, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}
復(fù)選提示框
那么有單選,當(dāng)然就有復(fù)選框了,為了滿足用戶的需求,Dialog的實(shí)現(xiàn),效果圖如下:

復(fù)選提示框效果圖
/**
* 復(fù)選提示框
* @param activity
* @param content
*/
public void showCheckDialog(final Activity activity,String[] content) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("復(fù)選提示框");
builder.setMultiChoiceItems(content, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
}
}).setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}
列表提示框
此處我們使用的是原生的Dialog列表樣式,效果圖如下:

列表提示框效果圖
/**
* 展示item列表
* @param activity
* @param item
*/
public void showListDialog(final Activity activity,String[] item){
AlertDialog.Builder listDialog = new AlertDialog.Builder(activity);
listDialog.setTitle("請(qǐng)選擇你喜歡的車型");
listDialog.setCancelable(false);
listDialog.setItems(item, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}