AlertDialog和ProgressDialog

Android 4.0

AlertDialog和ProgressDialog
弹出对话框和进度对话框

1、AlertDialog弹出对话框2、ProgressDialog进度对话框
①水平朝向:pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//水平朝向
②取消按钮: pDialog.setButton(DialogInterface.BUTTON_NEGATIVE,getString(android.R.string.cancel), new DialogInterface.OnClickListener()}
③进度对话框消失事件: pDialog.setOnDismissListener(new OnDismissListener() {}
当前进度值:
pDialog.setProgress(1 + i);
进度值自增: pDialog.incrementProgressBy(1);
3、Android中内置资源文件
android.R.string.ok
OK
android.R.string.cancel
Cancel
android.R.drawable.ic_dialog_alert

DialogInterface.BUTTON_NEGATIVE
// 2、遍历集合删除,弹出一个alertdialog,让用户确认是否删除
AlertDialog.Builder builder = new AlertDialog.Builder(this);// 只能用Activity,不能用Context
builder.setTitle("删除短信");// 标题
builder.setMessage("您确定要删除所选中的短信吗");// 显示信息
builder.setIcon(android.R.drawable.ic_dialog_alert);// 图标
builder.setCancelable(false);// 弹出来的对话框不可被取消
// 3、ok按钮,cancel按钮
builder.setNegativeButton(android.R.string.cancelnew DialogInterface.OnClickListener() {
    
    // 4、用户选择cancel,返回
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
builder.setPositiveButton(android.R.string.oknew DialogInterface.OnClickListener() {
    
    // 5、用户选择ok,将所选中的短信给删除,弹出一个ProgressDialog,更新删除进度,并提供取消按钮,可以随时取消删除
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //可以被删除
        canDelete = true;
        
        //进度对话框
        pDialog = new ProgressDialog(ConversationUI.this);
        pDialog.setTitle("正在删除短信");//标题
        pDialog.setMax(menuItemSet.size());//进度对话框最大值
        pDialog.setIcon(android.R.drawable.ic_dialog_alert);//图标
        pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//水平朝向
        //取消按钮
        pDialog.setButton(DialogInterface.BUTTON_NEGATIVE,getString(android.R.string.cancel), new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //取消删除短信                                
                canDelete = false;
                pDialog.dismiss();
            }
        });
        //对话框消失的监听事件
        pDialog.setOnDismissListener(new OnDismissListener() {
            
            @Override
            public void onDismiss(DialogInterface dialog) {
                // 6、删除完毕,跳转到list模式的界面
                changeDisplayMode(DisplayMode.list);
                Toast.makeText(ConversationUI.this"删除完毕,共删除"+deleteMsgCount+"个联系人的短信", Toast.LENGTH_SHORT).show();
            }
        });
        //进度对话框显示出来
        pDialog.show();
        //删除短信,开启子线程
        new Thread(new DeleteMsg()).start();
        dialog.dismiss();//弹出对话框消失
    }
});
builder.show();
结果:
①弹出对话框

②进度对话框