您的位置:首页 > 其它

使用ProgressDialog创建进度对话框

2016-07-09 17:00 281 查看
ProgressDialog代表了进度对话框,程序只要创建ProgressDialog实例,并将它显示出来就是一个对话框。有两种方法实现。

①如果只是创建简单的进度对话框,那么调用ProgressDialog提供的静态show()方法显示对话框即可.

②创建ProgressDialog,然后调用方法对对话框的进度条进行设置,设置完成后将对话框显示出来即可.

ProgressDialog常用方法:

setIndeterminate(bool indetermimate):设置对话框的值是否明确,false为不明确

setMax(int max):设置对话框的进度条的最大值

setMessage(CharSequence message):设置对话框里显示的消息

setProgress(int value):设置对话框里进度条的进度值

setProgressStyle(int style):设置对话框里进度条的风格

 setTitle(CharSequence message):设置对话框的标题

下面以一个实例进行讲解,主界面只有三个简单的按钮,当用户点击不同的按钮时显示不同的对话框。其中

第三个按钮激发的进度框比较复杂,该对话框用填充数组来模拟耗时任务,随着任务不断更新进度对话框上进度的显示。

主界面:



点击第一个按钮:



主要代码:

 public void showSpinner(View source){

        //调用静态方法显示进度条

        ProgressDialog.show(this,"任务执行中","任务执行中,请等待",false,true);

    }

点击第二个按钮:



主要代码:

 public void showIndeterminate(){

        pd1=new ProgressDialog(MainActivity.this);

        //设置对话框的标题

        pd1.setTitle("任务正在执行中");

        //设置对话框的内容

        pd1.setMessage("任务正在执行中, 敬请等待...");

        //设置对话框能用"取消"按钮关闭

        pd1.setCancelable(true);

        //设置对话框的进度风格

        pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

        //设置对话框的进度条能否显示进度

        pd1.setIndeterminate(true);

        pd1.show();

    }

点击第三个按钮:



主要代码:

public void showProgress(View source){

        //将进度条的方程进度重设为0

        progressStatus=0;

        //重设开始填充数组

        hasData=0;

        pd2=new ProgressDialog(MainActivity.this);

        pd2.setMax(MAX_PROGRESS);

        //设置对话框的标题

        pd2.setTitle("任务完成百分比");

        //设置对话框的内容

        pd2.setMessage("耗时任务完成的百分比");

        //设置对话框不能用取消按钮关闭

        pd2.setCancelable(false);

        //设置对话框进度条的风格

        pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

        //设置对话框的进度条是否显示进度

        pd2.setIndeterminate(false);

        pd2.show();

        new Thread(){

            @Override

            public void run() {

                while (progressStatus<MAX_PROGRESS){

                    //获取耗时操作的完成百分比

                    progressStatus=MAX_PROGRESS*downWork()/data.length;

                    //发送空消息到Handler

                    handler.sendEmptyMessage(0x123);

                }

                //如果已经完成任务

                    if (progressStatus>=MAX_PROGRESS){

                        //关闭对话框

                        pd2.dismiss();

                    }

            }

        }.start();

    }

项目源码下载地址:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: