Exemplo de ProgressDialog do Android

Bem-vindo ao Exemplo de Android ProgressDialog. Neste tutorial, aprenderemos como criar um Android Progress Dialog contendo uma ProgressBar. Também discutiremos detalhadamente a diferença entre um ProgressDialog e uma ProgressBar.

Android ProgressDialog

O Android ProgressDialog é uma extensão do AlertDialog. Para saber mais sobre um AlertDialog, confira o tutorial aqui. O Android ProgressDialog é uma caixa de diálogo/janela de diálogo que mostra o progresso de uma tarefa. O Android Progress Dialog é quase o mesmo que a ProgressBar, com a exceção de que ele é exibido como uma caixa de diálogo. Para criar um ProgressDialog para exibir uma ProgressBar, precisamos instanciá-lo assim.

ProgressDialog progress = new ProgressDialog(this);

Diferença entre Android ProgressDialog e ProgressBar

  1. A ProgressBar é uma View (como TextView, ImageView, Button, etc.), que pode ser usada no layout para mostrar algum progresso. Uma ProgressBar é usada para indicar que algo no aplicativo ainda está carregando enquanto o usuário ainda pode interagir com outras partes.
  2. ProgressDialog é um Diálogo com uma Barra de Progresso ‘integrada’. Um ProgressDialog é usado quando queremos impedir que o usuário interaja com a aplicação enquanto espera. O aspecto do Diálogo impede o usuário de fazer qualquer coisa até que seja dispensado

Atributos do ProgressDialog do Android

Alguns atributos importantes do ProgressDialog do Android são dados abaixo.

  1. setMessage() : Este método é usado para mostrar a mensagem ao usuário. Exemplo: Carregando…
  2. setTitle() : Este método é usado para definir um título para a caixa de diálogo
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : Este método é usado para mostrar a barra de progresso horizontal na caixa de diálogo
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER) : Este método é usado para mostrar a barra de progresso circular/rotativa na caixa de diálogo
  5. setMax() : Este método é usado para definir o valor máximo
  6. getProgress() : Este método é usado para obter o valor atual de progresso em números
  7. getMax() : Este método retorna o valor máximo do progresso
  8. show(Context context, CharSequence title, CharSequence message) : Este é um método estático, usado para exibir a caixa de diálogo de progresso
  9. incrementarProgressoPor(int diff) : Este método incrementa a barra de progresso pela diferença de valor passada como parâmetro

Neste tutorial, desenvolveremos uma aplicação que exibe um ProgressDialog contendo uma ProgressBar horizontal que incrementa a cada 200 milissegundos.

Estrutura do Projeto Android ProgressDialog

Exemplo de ProgressDialog Android

O arquivo activity_main.xml contém um botão que invoca um ProgressDialog ao ser clicado, conforme mostrado no código XML abaixo: activity_main.xml

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Start ProgressDialog"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="57dp" />

</RelativeLayout>

O arquivo MainActivity.java é apresentado abaixo. MainActivity.java

package com.journaldev.progressdialog;

import android.app.ProgressDialog;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button button;
    ProgressDialog progressDoalog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDoalog = new ProgressDialog(MainActivity.this);
                progressDoalog.setMax(100);
                progressDoalog.setMessage("Its loading....");
                progressDoalog.setTitle("ProgressDialog bar example");
                progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDoalog.show();
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            while (progressDoalog.getProgress() <= progressDoalog
                                    .getMax()) {
                                Thread.sleep(200);
                                handle.sendMessage(handle.obtainMessage());
                                if (progressDoalog.getProgress() == progressDoalog
                                        .getMax()) {
                                    progressDoalog.dismiss();
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }

            Handler handle = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    super.handleMessage(msg);
                    progressDoalog.incrementProgressBy(1);
                }
            };
        });
    }
}

O código a seguir ativa o manipulador no qual escrevemos o código para incrementar a barra de progresso.

handle.sendMessage(handle.obtainMessage());

Abaixo está o vídeo de saída quando você executar o exemplo de aplicativo de diálogo de progresso do Android no emulador Android. Isso encerra o tutorial de exemplo do ProgressDialog do Android. Você pode baixar o Projeto ProgressDialog do Android final no link abaixo.

Download do Projeto ProgressDialog do Android

Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example