Bem-vindo ao exemplo de Android ProgressDialog. Neste tutorial, aprenderemos como criar um Android Progress Dialog contendo uma ProgressBar. Além disso, discutiremos detalhadamente a diferença entre um ProgressDialog e uma ProgressBar.
Android ProgressDialog
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 e exibir uma ProgressBar, precisamos instanciá-lo da seguinte maneira.
ProgressDialog progress = new ProgressDialog(this);
Diferença entre Android ProgressDialog e ProgressBar
- 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 pode interagir com outras partes.
ProgressDialog é um Diálogo com uma Barra de Progresso ‘incorporada’. Um ProgressDialog é usado quando queremos evitar que o usuário interaja com a aplicação enquanto espera. O aspecto de Diálogo impede o usuário de fazer qualquer coisa até que seja dispensado
Alguns atributos importantes do ProgressDialog do Android estão listados abaixo.
- setMessage() : Este método é usado para mostrar uma mensagem ao usuário. Exemplo: Carregando…
- setTitle() : Este método é usado para definir um título para a caixa de diálogo
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : Este método é usado para exibir a barra de progresso horizontal na caixa de diálogo
- setProgressStyle(ProgressDialog.STYLE_SPINNER) : Este método é usado para exibir a barra de progresso circular/giratória na caixa de diálogo
- setMax() : Este método é usado para definir o valor máximo
- getProgress() : Este método é usado para obter o valor atual de progresso em números
- getMax() : Este método retorna o valor máximo do progresso
- show(Context context, CharSequence title, CharSequence message) : Este é um método estático, usado para exibir a caixa de diálogo de progresso.
- 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 ProgressDialog do Android
Exemplo de ProgressDialog do Android
O 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 é fornecido 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 handler 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 Android no emulador Android. Isso marca o fim do tutorial de exemplo de ProgressDialog do Android. Você pode baixar o Projeto ProgressDialog do Android final no link abaixo.
Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example