Android 原生Dialog的基本使用详解
2020-07-07 本文已影响0人
DT慕枫
前言
项目中为了方便交互,及用户体验等方面的原因,不少地方会用到Dialog,网上有很多非常优秀的自定义的Dialog工具,此处,我们不讲写那么写,我们写最基础的使用方法。
目录
- 简单提示框
- 单选提示框
- 复选提示框
- 列表显示提示框
- 进度条加载
- 加载WebView网页
- 自定义layout布局
demo存储位置记录:D:\android studio work space\work09\PrimordialDialog
Dialog常用的API
- AlertDialog.Builder :Dialog对象
- create():创建Dialog对象
- show():显示提示框
- setTitle():设置标题
- setMessage():设置内容
- setPositiveButton():设置正向点击按钮
- setNegativeButton():设置反向点击按钮
- dismiss():移除Dialog对象
- setSingleChoiceltems():设置单选列表
- setMultiChoiceItems():设置复选列表
- setCancelable():设置点击提示框外部,是否消失
- setItems():设置item列表数据和监听事件
简单提示框
最简单的Dialog弹框,其实就是一个“提示标题”、“提示内容”、“结束/确定”、“取消”几个元素;同时可以设置builder.setCancelable(false/true)点击Dialog之外处,是否关闭弹框,均可设置。效果图如下:
简单提示框效果图
public void showSimpleDialog(final Activity activity) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("友情提示");
builder.setMessage("此处填写提示内容?");
builder.setCancelable(false);
builder.setPositiveButton("结束", 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();
}
单选提示框
遇到单选的时候,有时候我们就想到了单向选择框,原生的Dialog中也提供了这样的方法,那么接下来,我们就简单的用示例代码展示一下,效果图如下:
单选提示框效果图
public void showSingleDialog(final Activity activity,String[] sex) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("请选择性别");
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();
}
复选提示框
那么有单选,当然就有复选框了,为了满足用户的需求,Dialog的实现,效果图如下:
复选提示框效果图
/**
* 复选提示框
* @param activity
* @param content
*/
public void showCheckDialog(final Activity activity,String[] content) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("复选提示框");
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("请选择你喜欢的车型");
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();
}