Ich habe einen Fortschrittsdialog in meiner erweiterten AsyncTask-Klasse. Ich habe das Layout mit setcontentview () auf den Fortschrittsdialog eingestellt. Ich möchte das Design des Fortschrittsdialogs ändern und 2 Sekunden lang anzeigen, wenn es abgeschlossen ist (d. H. In PostExecute ()).

Ich starte den Fortschrittsdialog in onPreexecute () und schließe ihn in onPostexecute () -Methoden aus.

So habe ich den Fortschrittsdialog in onPreexecute initialisiert

progressDialog = ProgressDialog.show(context, null, null);
progressDialog.setContentView(R.layout.progress_meditate);
progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
progressDialog.setProgressDrawable(new ColorDrawable(Color.WHITE));

Ich habe den folgenden Code in onPostExecute ausprobiert

progressDialog.setContentView(R.layout.progress_complete);
sleep(2000);
progressDialog.dismiss();

Aber es funktioniert nicht. Mein progress_complete-Layout wird nicht angezeigt. Der Fortschrittsdialog wird nach dem Ruhezustand mit demselben Design geschlossen.

0
hiranes 19 Jän. 2019 im 14:29

4 Antworten

Beste Antwort

Erstellen Sie dann zwei Fortschrittsdialoge übereinander, schließen Sie eines zuerst und eines nach 2 Sekunden. Es wird klappen

0
Android Killer 22 Jän. 2019 im 12:23

01. Erster Schritt Initialisieren Sie die progressBar und ProgressBarText

 private ProgressBar progressBar;
 private TextView progressBarText;

02. Im zweiten Schritt deklarieren Sie diese OnCreate-Methode

  progressBar.setVisibility(View.VISIBLE);
  progressBarText.setVisibility(View.VISIBLE);

03. Im dritten Schritt deklarieren Sie diese onPostExecute-Methode

  progressBar.setVisibility(View.GONE);
  progressBarText.setVisibility(View.GONE);

Das ist es. Ich denke, es ist Hilfe für dich.

0
Masum 19 Jän. 2019 im 11:46

Hierzu können Sie das Design zur Laufzeit nicht ändern. Die einzige Möglichkeit, einen Dialog mit einem anderen Design bei der Nachausführung anzuzeigen, ist die folgende Erstellen Sie einen neuen Dialog, schließen Sie den vorherigen und zeigen Sie den neuen an.

0
Khurram Shahzad 19 Jän. 2019 im 11:59

Die weniger einfache Lösung wäre, Ihren eigenen ProgressDialog zu erweitern oder zu erstellen. Auf der anderen Seite finden Sie in der Android-Dokumentation die folgenden :

Achtung : Android enthält eine weitere Dialogklasse namens ProgressDialog , die einen Dialog mit einem Fortschrittsbalken anzeigt. Dieses Widget ist veraltet , da Benutzer nicht mit der App interagieren können, während der Fortschritt angezeigt wird. Wenn Sie das Laden oder einen unbestimmten Fortschritt angeben müssen, sollten Sie die Entwurfsrichtlinien für Fortschritt und Aktivität befolgen und eine Fortschrittsleiste in Ihrem Layout verwenden, anstatt ProgressDialog zu verwenden.

Ich würde vorschlagen / empfehlen, zu ProgressBar als Ausgangspunkt der Lösung zu wechseln, aber es ist Ihr Anruf.

Ich denke, es wäre einfacher, Ihr Problem zu lösen, da ProgressBar nur eine weitere Ansicht ist, die sich im Ziel überlappen kann.

0
dogood 19 Jän. 2019 im 12:42