programacion - ¿Cómo mostrar el diálogo de progreso en Android?
manual de android en pdf (15)
Declara tu diálogo de progreso:
ProgressDialog progressDialog;
Para iniciar el diálogo de progreso:
progressDialog = ProgressDialog.show(this, "","Please Wait...", true);
Para descartar el cuadro de diálogo de progreso:
progressDialog.dismiss();
Quiero mostrar ProgressDialog
cuando hago clic en el botón Iniciar sesión y se necesita tiempo para pasar a otra página. ¿Cómo puedo hacer esto?
El punto uno que debes recordar cuando se trata developer.android.com/guide/topics/ui/dialogs.html es que debes ejecutarlo en un hilo separado. Si lo ejecuta en su subproceso de interfaz de usuario, verá ningún diálogo.
Si es nuevo en Android Threading, entonces debe aprender sobre AsyncTask . Lo cual te ayuda a implementar Hilos sin problemas .
Código de muestra
private class CheckTypesTask extends AsyncTask<Void, Void, Void>{
ProgressDialog asyncDialog = new ProgressDialog(IncidentFormActivity.this);
String typeStatus;
@Override
protected void onPreExecute() {
//set message of the dialog
asyncDialog.setMessage(getString(R.string.loadingtype));
//show dialog
asyncDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
//don''t touch dialog here it''ll break the application
//do some lengthy stuff like calling login webservice
return null;
}
@Override
protected void onPostExecute(Void result) {
//hide the dialog
asyncDialog.dismiss();
super.onPostExecute(result);
}
}
Buena suerte.
Es mejor que intentes con AsyncTask
Código de muestra -
private class YourAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
public YourAsyncTask(MyMainActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Doing something, please wait.");
dialog.show();
}
protected Void doInBackground(Void... args) {
// do background work here
return null;
}
protected void onPostExecute(Void result) {
// do UI work here
if (dialog.isShowing()) {
dialog.dismiss();
}
}
}
Use el código de arriba en su Actividad de botón de inicio de sesión. Y haz las cosas en doInBackground
y onPostExecute
Actualizar:
ProgressDialog
está integrado con AsyncTask
como usted dijo que su tarea lleva tiempo para el procesamiento.
Actualizar:
ProgressDialog
clase ProgressDialog
quedó obsoleta a partir de API 26
Esta es la buena forma de usar el diálogo
private class YourAsyncTask extends AsyncTask<Void, Void, Void> {
ProgressDialog dialog = new ProgressDialog(IncidentFormActivity.this);
@Override
protected void onPreExecute() {
//set message of the dialog
dialog.setMessage("Loading...");
//show dialog
dialog.show();
super.onPreExecute();
}
protected Void doInBackground(Void... args) {
// do background work here
return null;
}
protected void onPostExecute(Void result) {
// do UI work here
if(dialog != null && dialog.isShowing()){
dialog.dismiss()
}
}
}
Manera simple :
ProgressDialog pDialog = new ProgressDialog(MainActivity.this); //Your Activity.this
pDialog.setMessage("Loading...!");
pDialog.setCancelable(false);
pDialog.show();
Para usar ProgressDialog
usa el siguiente código
ProgressDialog progressdialog = new ProgressDialog(getApplicationContext());
progressdialog.setMessage("Please Wait....");
Para iniciar el uso de ProgressDialog
progressdialog.show();
progressdialog.setCancelable(false);
se usa para que ProgressDialog
no pueda cancelarse hasta que el trabajo esté terminado.
Para detener el ProgressDialog
use este código (cuando su trabajo haya terminado):
progressdialog.dismiss();`
ProgressDialog ahora está oficialmente obsoleto en Android O. Utilizo DelayedProgressDialog desde https://github.com/Q115/DelayedProgressDialog para hacer el trabajo.
Uso:
DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");
ProgressDialog está en desuso desde API 26
aún puedes usar esto:
public void button_click(View view)
{
final ProgressDialog progressDialog = ProgressDialog.show(Login.this,"Please Wait","Processing...",true);
}
cuando llamas a oncreate ()
new LoginAsyncTask ().execute();
Aquí cómo usar en flujo ...
ProgressDialog progressDialog;
private class LoginAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
progressDialog= new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Please wait...");
progressDialog.show();
super.onPreExecute();
}
protected Void doInBackground(Void... args) {
// Parsse response data
return null;
}
protected void onPostExecute(Void result) {
if (progressDialog.isShowing())
progressDialog.dismiss();
//move activity
super.onPostExecute(result);
}
}
Paso 1: crea un archivo XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnProgress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Progress Dialog"/>
</LinearLayout>
Paso 2: Crea una SampleActivity.java
package com.scancode.acutesoft.telephonymanagerapp;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SampleActivity extends Activity implements View.OnClickListener {
Button btnProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnProgress = (Button) findViewById(R.id.btnProgress);
btnProgress.setOnClickListener(this);
}
@Override
public void onClick(View v) {
final ProgressDialog progressDialog = new ProgressDialog(SampleActivity.this);
progressDialog.setMessage("Please wait data is Processing");
progressDialog.show();
// After 2 Seconds i dismiss progress Dialog
new Thread(){
@Override
public void run() {
super.run();
try {
Thread.sleep(2000);
if (progressDialog.isShowing())
progressDialog.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
}
ProgressDialog dialog =
ProgressDialog.show(yourActivity.this, "", "Please Wait...");
final ProgressDialog progDailog = ProgressDialog.show(Inishlog.this, contentTitle, "even geduld aub....", true);//please wait....
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Barcode_edit.setText("");
showAlert("Product detail saved.");
}
};
new Thread() {
public void run() {
try {
} catch (Exception e) {
}
handler.sendEmptyMessage(0);
progDailog.dismiss();
}
}.start();
final ProgressDialog loadingDialog = ProgressDialog.show(context,
"Fetching BloodBank List","Please wait...",false,false); // for showing the
// dialog where context is the current context, next field is title followed by
// message to be shown to the user and in the end intermediate field
loadingDialog.dismiss();// for dismissing the dialog
para obtener más información sobre Android, ¿cuál es la diferencia entre progressDialog.show () y ProgressDialog.show ()?
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.setMessage("loading");
pd.show();
Y eso es todo lo que necesitas
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.show();