Подтвердить что ты не робот

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

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

Можно ли мне это сделать?

4b9b3361

Ответ 1

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

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

Ответ 2

Если вам не нужен диалог, просто поместите 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);

}

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

Ответ 3

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

@lostInTransit:

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

  • Создайте собственный диалог
  • Положите индикатор выполнения как только просмотр в диалоговом окне
  • Установить прозрачность диалогового окна
  • Показать диалог.

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

-Yogesh

Ответ 4

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

private ProgressBar mprogressBar;

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

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

mprogressBar.setVisibility(View.VISIBLE);

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

mprogressBar.setVisibility(View.INVISIBLE);

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