AlertDialog和ProgressDialog的使用

作者: 大话程序 | 来源:发表于2016-05-06 22:59 被阅读1669次

    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弹出取消确认框

    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 多选对话框

    多选框类似于单选框

    代码如下:

    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();
    

    实现效果如图:

    ProgressDialog

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

    代码实现:

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

    实现的效果图:


    ProgressDialog弹出的进度条

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

    相关文章

      网友评论

        本文标题:AlertDialog和ProgressDialog的使用

        本文链接:https://www.haomeiwen.com/subject/nmujrttx.html