ProgressDialog中的进度单位

hpi*_*que 9 android progressdialog

Android的ProgressDialog允许您将当前进度和最大值设置为整数.这些值在对话框中显示如下:

一万〇二十三分之三千四百〇一

第一个数字是当前进度,第二个数字是最大值.

我还想展示测量单位.像这样的东西:

3401/10023 KB

这可能使用ProgressDialog吗?如果没有,您建议您将此信息提供给用户?我试图避免重新实现ProgressDialog以包含该单元.

hpi*_*que 6

更新:setProgressNumberFormat自11级以来是API的一部分.

HEAD所述的ProgressDialog源代码已经包括被称为公共函数setProgressNumberFormat,其可用于设置该单元.不幸的是,这个功能似乎没有在最新的Android版本中提供.我想它将包含在未来的更新中.

与此同时,复制此实现ProgressDialog是最佳选择.子类ProgressDialog是没有用的,因为它的所有成员都是私有的,并且直接view.findViewById(R.id.progress_number)获取TextView非常危险的,因为没有什么能确保id总是相同的(或者TextView它将永远存在).


fed*_*edj 5

在ProgressDialog源文件中:

mViewUpdateHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);

                /* Update the number and percent */
                int progress = mProgress.getProgress();
                int max = mProgress.getMax();
                double percent = (double) progress / (double) max;
                mProgressNumber.setText(progress + "/" + max);
                mProgressPercent.setText(mProgressPercentFormat.format(percent));
            }
        };
Run Code Online (Sandbox Code Playgroud)

你必须重新实现它,你无法避免它


Jon*_*Lin 5

从API 11开始,您可以调用以下函数来实现您的目的.

mProgressDialog.setProgressNumberFormat("%1d/%2d kB") 
Run Code Online (Sandbox Code Playgroud)