【
AlertDialog.Builder builder = AlertDialog.Budiler(Context):创建Dialog构造器
builder.setIcon():设置图标
builder.setMessage():设置文本内容
builder.setPositiveButton():设置“确定”按钮
builder.setNegativeButton():设置“取消”按钮
builder.setNeutralButton():设置“中立”按钮
点击按钮后,默认会关闭对话框
builder.setCancelable(boolean cancelable):设置是否可被取消
AlertDialog dialog = builder.create():创建对话框对象
dialog.show():显示对话框
点击按钮后,默认会关闭对话框
这两行代码可用builder.show()来代替
提示对话框AlertDialog的使用:
AlertDialog的分类:
1. 普通AlertDialog
2. 带列表的AlertDialog
3. 带单选列表的AlertDialog
4. 带多选列表的AlertDialog
5. 自定义列表样式的AlertDialog
6. 完全自定义显示内容的AlertDialog
】
【
列表对话框本质上还是AlertDialog
1、普通列表对话框
builder.setItems():设置列表项
2、单选列表对话框
builder.setSingleChoiceItems():设置单选列表项
3、多选列表对话框
builder.setMultiChoiceItems():设置多选列表项
4、带图标的列表对话框
builder.setAdapter():设置适配器(自定义每一行的布局和内容)
】
【
ProgressDialog pDialog = newProgressDialog(Context) :创建进度对话框
设置进度条的样式
无进度显示(默认)
有进度显示:pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pDialog.show():显示对话框
pDialog.setProgress(intprogress):设置进度
示例代码
case R.id.btn_dialog_progress:
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("提示等待中.......");
dialog.setTitle("提示题");
dialog.setIcon(R.drawable.ic_launcher);
// 设置对话框的显示样式
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.show();
break;
】
【
日期设置对话框的实现与时间设置对话框的使用套路一致,唯一要注意的问题在于,关于月份上:3 代表4月
private void dataPickDialog() {
// 获取设备的当前时间
Calendar cal = Calendar.getInstance();
DatePickerDialog dpcl = new DatePickerDialog(MainActivity.this,
newOnDateSetListener() {
@Override
public voidonDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,
year+ "/" + (monthOfYear+1) + "/" + dayOfMonth,
Toast.LENGTH_SHORT).show();
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH));
dpcl.show();
}】
【
时间设置对话框的实现:
/*
* 1. Context 环境
* 2. 当时间确定后运行该接口中的方法
* 3,4.用于设置对话框初始显示时显示的小时和分钟数
* 5. 是否是24小时制
* */
TimePickerDialog td = new TimePickerDialog(this, new OnTimeSetListener() {
/*
* 当时间设置完成后运行的方法
* 参数:1.对话框中用于设置时间的控件
* 2. 设置后的小时
* 3.设置后的分钟
* */
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, hourOfDay+" "+minute, Toast.LENGTH_LONG).show();
}
}, 11, 25, true);
//显示对话框
td.show();
】
【
builder.setView()
privatevoid btn_dialog_custom() {
Viewview = getLayoutInflater().inflate(R.layout.custom, null);
final AlertDialog dia=newAlertDialog.Builder(this)
.setView(view)
.setTitle("完全自定义的对话框")
.show();
/*
* 自定义的对话框中显示一个输入框和一个按钮
* 实现:当点击按钮的时候,关闭对话框,并且获取输入框中输入的内容
* */
Buttonbut =(Button) view.findViewById(R.id.button1);
finalEditText et = (EditText) view.findViewById(R.id.editText1);
/*
* 由于按钮的点击事件与对话框中的点击事件的名称都叫做OnClickListener
* 分属于不同的包中,而import倒包的部分不允许导入两个结尾名称相同的类
* 所以只能一个通过import导包,另一个通过上一层的路径类进行显示
* */
but.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v) {
//TODO Auto-generated method stub
Toast.makeText(MainActivity.this,et.getText().toString(), Toast.LENGTH_SHORT).show();
dia.dismiss();
}
});
】