AlertDialog和ProgressDialog的使用

AlertDialog和ProgressDialog的使用

AlertDialog 确认取消对话框

AlertDialog可以在当前页面弹出一个对话框,这个对话框置于所有界面元素之上,能够屏蔽掉和其他组件的交互能力

代码实现:

//拿到的AlertDialog对话框的创建器对象
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
dialogBuilder.setTitle("This is Dialog");
dialogBuilder.setMessage("Something important.");
dialogBuilder.setCancelable(false);  //设置为false,则点击back键或者弹窗外区域,弹窗不消去
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener(){ //使用了匿名内部类

    @override
    public void onClick(DialogInterface dialog, int which){
      //加入逻辑代码 
      //对话框消失的方法
      dialog.dismiss();
    }
  }
 );
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){ //使用了匿名内部类
    @override
    public void onClick(DialogInterface dialog, int which){
      //加入逻辑代码 
     }
  }
);
  //使用对话框创建器来创建一个对话框对象
  AlertDialog alertDialog = dialogBuilder.create();
  //将对话框显示出来
  alertDialog.show();

实现的效果图:


AlertDialog和ProgressDialog的使用_第1张图片
AlertDialog弹出取消确认框

AlertDialog 单选对话框

单选对话框实际上也是一个对话框,所以首先也需要拿到对话框创建器,而后设置单选框

代码如下:

AlertDialog.Builder alert = new AlertDialog.Builder(this);
        
alert.setTitle("请选择性别");

//单选框中的内容
final String[] items = new String[]{"男", "女"};

/*
 *  items:指定单选框中的内容
 *  checkedItem:哪一个选项默认被选中,-1代表未有选项被选中
 */
//设置单选对话框
alert.setSingleChoiceItems(items, -1, new OnClickListener() {
    /*
     *  which:用户所选的条目的下标
     *  dialog:触发这个方法的对话框
     */
    @Override
    public void onClick(DialogInterface dialog, int which) {

        Toast.makeText(AlertActivity.this, "您选择的是" + items[which], Toast.LENGTH_SHORT).show();
        //对话框消失
        dialog.dismiss();
        
    }
});
//直接调用对话框创建器的show方法也可以显示出来对话框
alert.show();

实现效果如图:

AlertDialog和ProgressDialog的使用_第2张图片

AlertDialog 多选对话框

多选框类似于单选框

代码如下:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("您觉着帅的人");

final String[] items = new String[]{"小生", "老生", "单生"};

final boolean[] checkedItems = new boolean[]{false, false, false, false};
//设置多选对话框
alert.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
    
    /*
     * dialog:该对话框对象
     * which:用户点击的条目的下标
     * isChecked:条目是否被选中
     */
    @Override
    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
        checkedItems[which] = isChecked;
    }
});

//设置一个确定按钮
alert.setPositiveButton("确定", new OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
        //将对话框消失
        dialog.dismiss();
    }
    
});

alert.show();

实现效果如图:

AlertDialog和ProgressDialog的使用_第3张图片

ProgressDialog

此控件和AlertDialog相似,可以在界面上弹出一个对话框,屏蔽掉和其他控件的交互能力,但ProgressDialog会在对话框中显示一个进度条

代码实现:

ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading");
progressDialog.setCancelable(true);
progressDialog.show();  //将进度条显示出来

实现的效果图:


AlertDialog和ProgressDialog的使用_第4张图片
ProgressDialog弹出的进度条

当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在

你可能感兴趣的:(AlertDialog和ProgressDialog的使用)