ProgressDialog для Android позволяет установить текущее значение прогресса и максимальное значение в виде целых чисел. Эти значения отображаются в диалоговом окне следующим образом:
3401/10023
Где первое число - текущий прогресс, а второе - максимальное значение.
Я также хотел бы показать единицу измерения. , Что-то вроде этого:
3401/10023 КБ
Возможно ли это с помощью ProgressDialog? Если нет, что вы рекомендуете сделать, чтобы предоставить эту информацию пользователю? Я пытаюсь избежать повторной реализации ProgressDialog, просто чтобы включить модуль.
В исходном файле 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));
}
};
Вы должны перереализовать его, вы не можете избежать этого
Обновление: setProgressNumberFormat
является частью API с уровня 11.
HEAD исходного кода ProgressDialog
уже включает общедоступную функцию setProgressNumberFormat
, которую можно использовать для установки единицы измерения. К сожалению, эта функция недоступна в последней версии Android. Думаю, он будет включен в будущее обновление.
Между тем, копирование этой реализации ProgressDialog
- лучший вариант. Создание подкласса ProgressDialog
бесполезно, поскольку все его члены являются закрытыми и работают с view.findViewById (R.id.progress_number)
, чтобы напрямую получить TextView
. чрезвычайно рискованно, поскольку ничто не гарантирует, что идентификатор всегда будет одним и тем же (или что TextView
всегда будет существовать).