《一:对话框创建的常规步骤》
1.创建builder对象
Builder builder = new Builder(this);
2.为builder设置组件(title,message,positiveButton,negativeButton,SingleChoiceItems,setMultiChoiceItems)
3.利用builder组件创建对话框对象
AlertDialog dialog = builder.create();
4.显示对话框
dialog.show();
《二:细节》
1.builder组件支持链式编程
2.MainActivity.this.finish():关闭应用
3.dialog.dismiss():关闭对话框
4.按钮监听器中重写的函数:onClick(DialogInterface arg0, int arg1):中int值 确定的是-1,否定的是-2
5.当组件设置了message之后,单选框和多选框就不能正常显示出来,两者不能共存。
6.progressDialog不支持链式编程
《三:常见三种对话框样式》
//1.确定,否定对话框
public void openDialogClick(View v){
Builder builder = new Builder(this);
builder.setTitle("提示").
setMessage("残忍卸载吗?").
setPositiveButton("是", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "确定了=" + arg1, Toast.LENGTH_SHORT).show();
}
}).
setNegativeButton("否", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "不删除了=" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
//2.单选对话框
public void openSingleDialogClick(View v){
final String[] items = {"张飞", "赵云"};
Builder builder = new Builder(this);
builder.setTitle("请选择人物").
//默认选中items中第一个
setSingleChoiceItems(items, 0, new OnClickListener() {
//参数:对话框对象,items数组的索引
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "当先选中的是:" + items[arg1], Toast.LENGTH_SHORT).show();
}
}).setPositiveButton("确定", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "确定了=" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
//3.多选对话框
public void openMultiDialogClick(View v){
final String[] items = {"今天", "明天", "后天"};
final boolean[] checkedItems = {true, false, true};
Builder builder = new Builder(this);
builder.setTitle("请选择日期").
setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
//参数:对话框对象,当前items索引,当前索引是否被选中
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
Toast.makeText(MainActivity.this, "当前选择日期为:" + items[arg1], Toast.LENGTH_SHORT).show();
checkedItems[arg1] = arg2;
}
}).setPositiveButton("确定", new OnClickListener() {
//打印所有被选中的日期
public void onClick(DialogInterface arg0, int arg1) {
String result = " ";
for (int i = 0; i < items.length; i++) {
if(checkedItems[i]){
result += items[i] + " ";
}
}
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("取消", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "取消" + arg1, Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openDialogClick"
android:text="打开简单对话框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openSingleDialogClick"
android:text="打开单选框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openMultiDialogClick"
android:text="打开多选框" />
《四:进度条对话框(原地转圈的那种)》
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openProgressDialogClick"
android:text="进度条对话框" />
public void openProgressDialogClick(View v){
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("提示");
dialog.setMessage("请耐心等待");
dialog.show();
//设置定时器(五秒后自动退出对话框)
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
dialog.dismiss();
}
});
}
}, 5000);
}