Мое приложение должно создавать небольшой ProgressBar
программно. ProgressBar
не имеет метода для установки стиля (я хочу небольшой ProgressBar
). Конструктор может принимать AttributeSet
, однако это интерфейс и требует от меня реализации набора функций. Есть ли способ установить ProgressBar
в небольшой стиль? (Я не могу использовать XML для создания ProgressBar
.)
Как создать программный пакет ProgressBar?
Ответ 1
В большинстве случаев, если вы предоставляете AttributeSet
вручную, вы должны использовать один из Android. К счастью, они выставили набор атрибутов, описывающий небольшой индикатор выполнения. Используйте этот код:
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
Ответ 2
Создайте XML файл макета в каталоге res/layout с нужным индикатором выполнения, содержащий все необходимые вам атрибуты:
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" ... />
Далее в классе Activity вы можете создать объект ProgressBar из этого макета:
LayoutInflater inflater = getLayoutInflater();
ProgressBar bar = (ProgressBar ) inflater.inflate(R.layout.small_progress_bar, null);
где R.layout.small_progress_bar ссылается на ваш XML файл макета.
Можете ли вы по-прежнему не использовать xml файл?
Ответ 3
Activity.java
progressBar = (ProgressBar) findViewById(R.id.progressbar);
'progressBar.setVisibility(View.VISIBLE);'// To Show ProgressBar
'progressBar.setVisibility(View.INVISIBLE);' //To Hide ProgressBar
Проверьте здесь, ProgressDialog устарел. Какой альтернативный использовать?
Ответ 4
Полный код для добавления индикатора выполнения программно
private ProgressDialog mProgressDialog;
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Signing........");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setCancelable(false);
Вызов метода ниже для отображения строки
mProgressDialog.show();
вызов ниже, чтобы скрыть панель
mProgressDialog.dismiss();