ProgressDialog进度条显示

private ProgressDialog pdialog;
   
    private Handler proHandler;
   
    private static int MAX_PROGRESS = 100;
   
    private int progress;


showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);
showProgressDialog(ProgressDialog.STYLE_SPINNER);


private void showProgressDialog(int style)
    {
        pdialog = new ProgressDialog(context);
        pdialog.setIcon(R.drawable.icon);
        pdialog.setTitle("数据处理中...");
        pdialog.setMessage("请稍后...");
        pdialog.setProgressStyle(style);
        pdialog.setMax(MAX_PROGRESS);
        pdialog.setButton("暂停", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                proHandler.removeMessages(1);
            }
        });
        pdialog.setButton("取消", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                proHandler.removeMessages(1);
                progress = 0;
                pdialog.setProgress(0);
            }
        });
        pdialog.show();
       
        proHandler = new Handler()
        {
            public void handleMessage(Message msg)
            {
                super.handleMessage(msg);
                if (progress >= MAX_PROGRESS)
                {
                    progress = 0;
                    pdialog.dismiss();
                }
                else
                {
                    progress++;
                    pdialog.incrementProgressBy(1);
                    proHandler.sendEmptyMessageDelayed(1, 50 + new Random().nextInt(500));
                }
            };
        };
        progress = (progress > 0) ? progress : 0;
        pdialog.setProgress(progress);
        proHandler.sendEmptyMessage(1);
    }

猜你喜欢

转载自mickey-hou.iteye.com/blog/1675608