9

Android のProgressDialogを使用すると、現在の進行状況と最大値を整数として設定できます。これらの値は、次のようにダイアログに表示されます。

3401/10023

最初の数字は現在の進行状況で、2 番目の数字は最大値です。

測定単位も表示したいと思います。このようなもの:

3401 /10023KB

これは ProgressDialog を使用して可能ですか? そうでない場合、この情報をユーザーに提供するために何をすることをお勧めしますか? ユニットを含めるためだけに ProgressDialog を再実装しないようにしています。

4

4 に答える 4

6

更新:setProgressNumberFormatレベル 11 以降の API の一部です。

ソース コードのHEADには、単位の設定に使用できるパブリック関数が既に含まれています。残念ながら、この機能は最新の Android バージョンでは利用できないようです。今後のアップデートで追加されると思います。ProgressDialogsetProgressNumberFormat

当面は、この実装をコピーするのProgressDialogが最善の選択肢です。サブクラス化ProgressDialogは役に立ちません。すべてのメンバーがプライベートであり、id が常に同じである (またはが常に存在する)ことを保証するものがないため、直接view.findViewById(R.id.progress_number)取得するために作業することは非常に危険です。TextViewTextView

于 2010-08-16T20:08:23.300 に答える
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));
            }
        };

再実装する必要があり、回避することはできません

于 2010-08-16T19:26:17.483 に答える
3

私が設定できることは私には明らかではありませんでした:

mProgressDialog.setMessage("Downloading...(size in kB)");

たぶん、この最も単純な方法は、他の人にとっては明らかではありません...

于 2012-12-07T18:59:30.583 に答える