progressDialoge不显示当前递增的进度?

时间:2014-05-16 12:47:31

标签: android progressdialog

为什么progressdialoge没有显示递增的进度? 我在下面的代码中遗漏了什么?

Java_Code:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_progress_dialoge_test00);

    mProgreeDialoge = new ProgressDialog(this);
    mHandler = new Handler();
}

public void open(View view) {
    mProgreeDialoge.setTitle("Progress Dialoge Box");
    mProgreeDialoge.setMessage("Downloading...");
    mProgreeDialoge.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    mProgreeDialoge.setProgress(0);
    mProgreeDialoge.setMax(20);
    mProgreeDialoge.setIndeterminate(true);
    mProgreeDialoge.show();


    final Thread mThread = new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (mProgreeDialoge.getProgress() <= mProgreeDialoge.getMax() ) {
                try {
                    Thread.sleep(2000);

                    mHandler.post(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            mProgreeDialoge.incrementProgressBy(2);
                        }
                    });

                    if (mProgreeDialoge.getProgress() == mProgreeDialoge.getMax() ) {
                        mProgreeDialoge.dismiss();
                    }
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }
    });
    mThread.start();

2 个答案:

答案 0 :(得分:0)

只需对代码进行一处小改动即可。删除此行mProgreeDialoge.setIndeterminate(true)或将其设置为false。

答案 1 :(得分:0)

默认模式ProgressDialoge是不确定的。它表示它显示循环动画。当您没有明确指示何时完成特定任务时,此模式非常有用。我认为,这就是没有显示增量进展的原因。 here您将找到progressdialog方法和常量

在您的情况下,请尝试:mProgreeDialoge.setIndeterminate(false);