Я хочу показать свою панель прогресса в центре экрана, когда обработка происходит при нажатии кнопки. Но я просто хочу progressbar без диалогового окна.
Можно ли мне это сделать?
Я хочу показать свою панель прогресса в центре экрана, когда обработка происходит при нажатии кнопки. Но я просто хочу progressbar без диалогового окна.
Можно ли мне это сделать?
Это полностью объяснено в ApiDemos внутри SDK. Пример, который вы хотите, называется: ProgressBar3.java и может быть найден в \ApiDemos\src\com\example\android\apis\view\
Кроме того, если вы хотите удалить границы диалогового окна, чтобы отобразить только индикатор выполнения, вы можете определить сам диалог как прозрачный вид/оверлей (это также объясняется в примерах).
Если вам не нужен диалог, просто поместите 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);
}
Это простая версия, сделанная в потоке пользовательского интерфейса, но ее легко адаптировать, если вы используете асинхронную задачу или обработчики потоков. Просто покажите, спрячьте и опубликуйте любые обновления в диалоговом окне, пока вы находитесь в потоке пользовательского интерфейса, и выполняйте свою долговременную задачу в фоновом режиме.
@reflog: Это не то, что нужно, я думаю.
@lostInTransit:
Правильный способ достижения этого заключается в следующем:
Что это. Он работает для меня на устройствах с 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);
Это находится под переключателем. так что, когда состояния в моей программе меняются, индикатор выполнения появляется и исчезает
Существует отличный пример того, что предлагает Yogesh:
Как легко центрировать индикатор прогресса в ProgressDialog (когда заголовок/текст не передавался)
Кредит отправляется на Macarse для его публикации.