Блок прогресса в ProgressDialog

ProgressDialog для Android позволяет установить текущее значение прогресса и максимальное значение в виде целых чисел. Эти значения отображаются в диалоговом окне следующим образом:

3401/10023

Где первое число - текущий прогресс, а второе - максимальное значение.

Я также хотел бы показать единицу измерения. , Что-то вроде этого:

3401/10023 КБ

Возможно ли это с помощью ProgressDialog? Если нет, что вы рекомендуете сделать, чтобы предоставить эту информацию пользователю? Я пытаюсь избежать повторной реализации ProgressDialog, просто чтобы включить модуль.

9
задан hpique 16 August 2010 в 09:37
поделиться

2 ответа

В исходном файле 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));
            }
        };

Вы должны перереализовать его, вы не можете избежать этого

5
ответ дан 4 December 2019 в 11:03
поделиться

Обновление: setProgressNumberFormat является частью API с уровня 11.

HEAD исходного кода ProgressDialog уже включает общедоступную функцию setProgressNumberFormat , которую можно использовать для установки единицы измерения. К сожалению, эта функция недоступна в последней версии Android. Думаю, он будет включен в будущее обновление.

Между тем, копирование этой реализации ProgressDialog - лучший вариант. Создание подкласса ProgressDialog бесполезно, поскольку все его члены являются закрытыми и работают с view.findViewById (R.id.progress_number) , чтобы напрямую получить TextView . чрезвычайно рискованно, поскольку ничто не гарантирует, что идентификатор всегда будет одним и тем же (или что TextView всегда будет существовать).

6
ответ дан 4 December 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: