web-dev-qa-db-fra.com

Comment afficher le dialogue de progression sous Android?

Je veux montrer ProgressDialog quand je clique sur le bouton de connexion et il faut du temps pour passer à une autre page. Comment puis-je faire ceci?

48
user1285707

Vous feriez mieux d'essayer avec AsyncTask

Exemple de code -

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();
    }
    @Override
    protected Void doInBackground(Void... args) {
        // do background work here
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {
         // do UI work here
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    }
}

Utilisez le code ci-dessus dans votre activité de bouton de connexion. Et faire les choses dans doInBackground et onPostExecute

Mise à jour:

ProgressDialog est intégré à AsyncTask comme vous l'avez dit, le traitement de votre tâche prend du temps.

Mise à jour:

ProgressDialog class est obsolète à partir de l'API 26

47
Praveenkumar
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.setMessage("loading");
pd.show();

Et c'est tout ce dont vous avez besoin.

94
Jave

Pour utiliser ProgressDialog, utilisez le code ci-dessous

ProgressDialog progressdialog = new ProgressDialog(getApplicationContext());
progressdialog.setMessage("Please Wait....");

Pour démarrer le ProgressDialog utilisez

progressdialog.show();

progressdialog.setCancelable(false); est utilisé pour que ProgressDialog ne puisse être annulé tant que le travail n'est pas terminé.

Pour arrêter le ProgressDialog, utilisez ce code (lorsque votre travail est terminé):

progressdialog.dismiss();`
20
Abhishek Punia

La première chose que vous devez retenir en ce qui concerne dialogue de progression est que vous devez l'exécuter dans un thread séparé. Si vous l'exécutez dans votre thread d'interface utilisateur, vous ne verrez aucune boîte de dialogue.

Si vous êtes nouveau sur Threading Android , vous devez en savoir plus sur AsyncTask . Ce qui vous aide à mettre en œuvre un Threads indolores .

exemple de code

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);
        }

}

Bonne chance.

19
Jay Mayu

Codage simple dans votre activity comme ci-dessous:

private ProgressDialog dialog = new ProgressDialog(YourActivity.this);    
dialog.setMessage("please wait...");
dialog.show();
dialog.dismiss();
6
Chirag Patel

Déclarez votre dialogue de progression:

ProgressDialog progressDialog;  

Pour démarrer la boîte de dialogue de progression:

progressDialog = ProgressDialog.show(this, "","Please Wait...", true);  

Pour fermer la boîte de dialogue de progression:

 progressDialog.dismiss();
3

quand vous appelez oncreate ()

new LoginAsyncTask ().execute();

Voici comment utiliser en flux ..

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);
     }
 }
2
Kush

C'est le bon moyen d'utiliser le dialogue

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()
     }

  }
}
2
Aristo Michael

ProgressDialog est maintenant officiellement obsolète dans Android O. J'utilise DelayedProgressDialog de https://github.com/Q115/DelayedProgressDialog pour effectuer le travail.

Usage:

DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");
1
NinjaCowgirl
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.show();
1
m.v.n.kalyani

ProgressDialog est obsolète depuis l'API 26

vous pouvez toujours utiliser ceci:

public void button_click(View view)
{
    final ProgressDialog progressDialog = ProgressDialog.show(Login.this,"Please Wait","Processing...",true);
}
1
Anish Arya
ProgressDialog dialog = 
   ProgressDialog.show(yourActivity.this, "", "Please Wait...");
1
V.J.
  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 

pour plus d'informations Android - Quelle est la différence entre progressDialog.show () et ProgressDialog.show ()?

1
cammando

Manière simple:

ProgressDialog pDialog = new ProgressDialog(MainActivity.this); //Your Activity.this
pDialog.setMessage("Loading...!");
pDialog.setCancelable(false);
pDialog.show();
1
Chathura
        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();
0
KeTaN

Étape 1: Créer un fichier 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>

Étape 2: Créer un exemple d’activité.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();
    }
}
0
Manikanta Reddy