Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 05 - Interfaces Gráficas II

ProgressDialog

O segundo tipo de Dialog que iremos estudar é o ProgressDialog. Esse tipo de Dialog, que extende AlertDialog, permite ao desenvolvedor criar uma Dialog de carregamento, utilizando uma barra de progresso ou uma roda giratória para indicar processamento. Por ser uma extensão de AlertDialog, o ProgressDialog também pode ter os componentes do anterior.

A criação de um ProgressDialog é bastante simples. A Listagem 12 exibe o código necessário para a criação do ProgressDialog que pode ser visto na Figura 4. Você pode inseri-lo no método onCreate para ver o seu funcionamento!

Listagem 12 - Criação de um ProgressDialog de progresso indefinido
ProgressDialog criado na Listagem 12

Como vimos na Listagem 12, para criar um ProgressDialog de progresso indefinido, como mostrado na Figura 4, precisamos apenas de um método. Esse método possui 4 parâmetros. O primeiro deles é o contexto sobre o qual o Dialog deve ser criada. Normalmente pode-se utilizar referência a Activity, com o this, ou utilizar o método getApplicationContext() para obter o contexto dentro de uma Activity. O segundo parâmetro é o título do Dialog e o terceiro é o texto que será exibido em seu corpo. Por fim, a variável booleana indica se o progresso é indefinido ou não.

Caso o progresso relacionado ao Dialog seja definido, como por exemplo, o download de um arquivo de tamanho conhecido, podemos utilizar um ProgressDialog com uma barra de progresso indicando o passo do processamento que está acontecendo. Vejamos na Listagem 13 um exemplo de como implementar o Dialog mostrado na Figura 5.

Listagem 13 - Implementação de uma ProgressDialog de progresso definido ProgressDialog com barra de carregamento

O grande ponto em relação a esses Dialogs com barras de carregamento é como atualizar o progresso da barra. O método setProgress() é responsável por alterar a porcentagem que está sendo exibida no Dialog. É através desse método que o desenvolvedor deve atualizar o progresso para informar corretamente o usuário. Normalmente, utiliza-se uma thread separada, que comunica o progresso a thread principal, utilizando um handler para passar as mensagens. Esses conceitos são um pouco avançados para o nosso curso, mas alguns tutoriais sobre thread estão disponíveis na página do Android Developers para aqueles que queiram se aprofundar um pouco mais no assunto.

Versão 5.3 - Todos os Direitos reservados