Android共有4种对话框:
1、AlertDialog:可以有0-3个按钮,可以有单选框或者复选框的对话框,可以创建大多数界面(推荐)
2、ProgressDialog:显示一个进度环或者进度条,继承自AlertDialog。
3、DatePickerDialog:让用户选择一个日期
4、TimePickerDialog:让用户选择一个时间
普通弹框的创建
public void showDialog(View v) {
// 这里的属性可以一直设置,因为每次设置后返回的是一个builder对象
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置提示框的标题
builder.setTitle("提示标题").
// 设置提示框的图标
setIcon(R.drawable.ic_launcher).
// 设置要显示的信息
setMessage("文本的提示信息:你妈喊你回家吃饭了!").
// 设置确定按钮
setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
}).
// 设置取消按钮,null是什么都不做
setNegativeButton("取消", null).
// 设置退出按钮,在中间的按钮
setNeutralButton("退出", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 退出程序
finish();
}
});
// 生产对话框
AlertDialog alertDialog = builder.create();
// 显示对话框
alertDialog.show();
}
选择菜单式的弹框
String[] array = new String[] { "音乐", "体育", "舞蹈", "看书" };
public void showMenuDialog(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置标题
builder.setTitle("选择你最喜欢的课程").
// 设置可选择的内容,并添加点击事件
setItems(array, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// which代表的是选择的标签的序列号
Toast.makeText(MainActivity.this, "选择" + array[which],0).show();
}
}).
// 产生对话框,并显示出来
create().show();
}
单选按钮式的弹框
String[] array = new String[] { "音乐", "体育", "舞蹈", "看书" };
public void radioListDialog(View v) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置标题
builder.setTitle("选择你最喜欢的课程").
setSingleChoiceItems(array, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "选择" + array[which],0).show();
}
}).
setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "选择确定", 0).show();
}
}).
// 取消,什么都不做,对话框消失而已
setNegativeButton("取消", null).
// 产生对话框,并显示出来
create().show();
}
多选按钮式的弹窗
public void checkboxListDialog(View v) {
boolean[] checkedItems = { true, false, false, true };
final List list = new ArrayList();
list.add("音乐");
list.add("看书");
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择你最喜欢的课程").
setMultiChoiceItems(array, checkedItems,
new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
if (isChecked) {
// 添加数据
list.add(array[which]);
} else {
list.remove(array[which]);
}
}
}).
setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选中了" + list, 0)
.show();
}
}).
setNegativeButton("取消", null).
create().show();
}
圆形进度弹框
public void circleProgress(View v) {
// 创建进度条的对话框
ProgressDialog dialog = new ProgressDialog(this);
// 设置进度条的样式,选择圆形或条状
// 这里这圆形的
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置标题
dialog.setTitle("文件下载");
// 设置文本信息
dialog.setMessage("正在下载...");
// 设置是否能用后退键出对话框
// 选择false就代表不能
// 如果设置为false,程序可能退出不了
dialog.setCancelable(true);
// 显示对话框
dialog.show();
}
水平进度弹框
public void showProgress(View v) {
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(100);
dialog.setTitle("文件下载");
dialog.setMessage("正在下载...");
dialog.setCancelable(false);
// 显示对话框
dialog.show();
// 这里新建一个线程来,跟新进度和关闭页面
new Thread(new Runnable() {
@Override
public void run() {
// 获取进度值的当前的值
int index = 0;
// 跟新进度
while (index < dialog.getMax()) {
index++;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 设置进度的值
dialog.setProgress(index);
}
// 完成任务后,退出对话框
dialog.cancel();
}
}).start();
}
选择时间弹框
public void selectTime(View v) {
// 第一个参数是上下文
// 第二个参数是监听时间选择后的事件
// 后面两个数是默认是时间
// 后一个是代表是否显示时间的格式是24小时制的
TimePickerDialog dialog = new TimePickerDialog(this,
new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
Toast.makeText(MainActivity.this,
hourOfDay + "时" + minute + "分", 0).show();
}
}, 21, 8, true);
//显示标题
dialog.setTitle("选择你要设定的时间");
// 显示时间的对话框
dialog.show();
}
选择日期弹框
public void selectDate(View v) {
// 第一个参数是上下文
// 第二个参数是监听时间选择后的事件
// 后面三个数是默认是日期数
DatePickerDialog dialog = new DatePickerDialog(this,
new OnDateSetListener() {
// 日期选择器上的月份是从0开始的
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
Toast.makeText(
MainActivity.this,
year + "年" + (monthOfYear + 1) + "月"
+ dayOfMonth + "日", 0).show();
}
}, 2016, 11, 13);
// 显示时间的对话框
dialog.show();
}
如果对您有用的话赞一下呗!或者评论66!也好啊!谢谢谢谢~