Android – показывает неопределенный прогресс, без диалога

Я хочу показать свою панель прогресса в центре экрана, когда обработка происходит при нажатии кнопки. Но я просто хочу progressbar без диалогового windows.

Есть ли способ сделать это?

Это полностью объяснено в ApiDemos внутри SDK. Пример, который вы хотите, называется: ProgressBar3.java и может быть найден в \ ApiDemos \ src \ com \ example \ android \ apis \ view \

Кроме того, если вы хотите удалить границы диалогового windows, чтобы отобразить только индикатор выполнения, вы можете определить сам диалог как прозрачный вид / оверлей (это также объясняется в примерах).

Если вам не нужен диалог, просто поместите progressBar в свой макет, как и любой другой элемент представления, и установите видимость «INVISIBLE» или даже «GONE» по умолчанию.

Затем просто покажите его, когда вам нужно, изменив его на «VISIBLE» с помощью setVisibility в вашем коде и снова спрячьте его, когда задача будет выполнена, снова сделав его «INVISIBLE» или «GONE».

например

MyTask { // get handle on ProgressBar ViewItem defined in XML (id:progressBar) ProgressBar progressBar = findViewById(R.id.progressBar); //starting task, show progress bar progressBar.setVisibility(View.VISIBLE); // Do some stuff... //task done, hide it again progressBar.setVisibility(View.GONE); } 

Это простая версия, все сделано в streamе пользовательского интерфейса, но это должно быть легко адаптироваться, если вы используете асинхронную задачу или обработчики streamов. Просто покажите, спрячьте и опубликуйте любые обновления в диалоговом окне, пока вы находитесь в streamе пользовательского интерфейса, и выполняйте свою долговременную задачу в фоновом режиме.

@reflog: Это не то, что нужно. Думаю.

@lostInTransit:

Правильный способ достижения этого заключается в следующем:

  1. Создать собственный диалог
  2. Положите индикатор выполнения как только просмотр в диалоговом окне
  3. Установить фоновое окно диалогового windows
  4. Показать диалог.

Вот и все. Он работает для меня на устройствах с 1,5 до 2,1. Не пробовал 2.2.

-Yogesh

Ответ @Jesse Finnerty решил мою проблему. что я сделал:

 private ProgressBar mprogressBar; 

Внутренний oncreate (), как и другие кнопки и текстовые изображения, которые я сделал, mprogressBar = (ProgressBar) findViewById (R.id.progressBar);

Тогда в точке я хочу, чтобы вращающееся колесо появилось, я даю команду

 mprogressBar.setVisibility(View.VISIBLE); 

в точке, где я хочу, чтобы она исчезла.

 mprogressBar.setVisibility(View.INVISIBLE); 

На самом деле это происходит при переключении. так что, когда состояния в моей программе меняются, индикатор выполнения появляется и исчезает

Существует отличный пример того, что предлагает Йогеш:

Как легко центрировать индикатор прогресса в ProgressDialog (когда заголовок / текст не передавался)

Кредит отправляется на Macarse для его публикации.

  • Снять вертикальную прокладку с горизонтальной панели ProgressBar
  • Android: что выбрать для значений кода запроса?
  • Как добавить новую активность в существующий проект в Android Studio?
  • Узнайте, прокручивается ли ListView до конца?
  • Быстрая документация по Android Studio всегда «получение документации»
  • Как обнаружить изменение состояния Bluetooth с помощью широковещательного приемника?
  • Фрагменты Android. Сохранение AsyncTask во время поворота экрана или изменения конфигурации
  • Как сбросить Android Studio
  • Что такое предупреждающий вывод «Игнорирование InnerClasses» во время компиляции?
  • Как скомпилировать Android-приложение с системными правами
  • ActionBar - пользовательский вид с центрированным ImageView, элементами действия по сторонам
  • Interesting Posts

    C, почему это объявление большого массива создает ошибку сегментации?

    Windows Batch Scripting: новый файл, соответствующий шаблону

    Получить имя метода, используя выражение

    Вызов awt Кадровые методы из подclassа

    Как интерполировать переменные в строках в JavaScript, без конкатенации?

    Как измерить прирост производительности при дефрагментации?

    В Java 8, почему емкость по умолчанию ArrayList равна нулю?

    Пример ActivityGroup

    Перезагрузите explorer.exe в Windows 7, сохраняя все значки в системном трее?

    Разделить объекты NSData на другие объекты NSData заданного размера

    Событие Bubbling и MVP: ASP.NET

    Запуск нескольких задач async и ожидание их завершения

    Почему большой локальный массив разбивает мою программу, но глобальный – нет?

    Между несколькими вкладками, как использовать Vimperator для открытия вкладки сразу после текущей

    Странное поведение в функции PowerShell, возвращающее DataSet / DataTable

    Давайте будем гением компьютера.