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?
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
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.setMessage("loading");
pd.show();
Et c'est tout ce dont vous avez besoin.
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();`
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.
Codage simple dans votre activity
comme ci-dessous:
private ProgressDialog dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("please wait...");
dialog.show();
dialog.dismiss();
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();
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);
}
}
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()
}
}
}
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");
ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.show();
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);
}
ProgressDialog dialog =
ProgressDialog.show(yourActivity.this, "", "Please Wait...");
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 ()?
Manière simple:
ProgressDialog pDialog = new ProgressDialog(MainActivity.this); //Your Activity.this
pDialog.setMessage("Loading...!");
pDialog.setCancelable(false);
pDialog.show();
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();
É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();
}
}