2017-05-28 27 views
0

Ich zeige eine AlertDialog von einem Service. Das Problem ist, ich möchte ein ProgressBar (rund) in meinem AlertDialog hinzufügen. Wie mache ich das? Ich versuchte, AlertDialog durch ProgressDialog zu ersetzen, aber es würde zwingen nah, ich weiß, dass das sowieso nicht der richtige Weg ist.Wie füge ich einen kreisförmigen Fortschrittsbalken in meinen Alertdialog ein?

AlertDialog.Builder builder = new AlertDialog.Builder(context); 
      builder.setTitle("APP IS OBSOLETE") 
        .setMessage("To continue, please wait for the updates to download.") 
        .setCancelable(false) 
        .setPositiveButton("no, thanks", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          System.exit(0); 
         } 
        }); 
      AlertDialog alert = builder.create(); 
      alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
      alert.show(); 

PS: Ich will das, innerhalb des Dienstes tun, ohne zusätzliche Layouts zu verwenden.

+0

Ein Dienst sollte niemals einen Dialog anzeigen. Ich bin überrascht, dass es sogar für dich funktioniert hat. Die Benutzeroberfläche wird sowieso nicht richtig thematisch sein. Stattdessen empfehle ich Ihnen, eine Benachrichtigung zu zeigen, die eine dialogbezogene Aktivität starten kann. – BladeCoder

+0

@BladeCoder kein Wunder, würden Sie das sagen. So wie du aussiehst. Ich kann dir sagen, dass sie schlau sind :) – user8069029

Antwort

0

Sie sollten immer noch eine AlertDialog verwenden, aber ändern Sie die View, die es zeigt.

https://developer.android.com/reference/android/app/Dialog.html#setContentView(android.view.View)

 AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     builder.setView(R.layout.my_progress_view) 
     ... 

Verwenden Sie diese Methode auf dem Erbauer: https://developer.android.com/reference/android/app/AlertDialog.Builder.html#setView(int)

R.layout.my_progress_view ist eine XML-Datei, die enthält ProgressBar (Sie schaffen es auf die gleiche Weise ein Layout für eine Aktivität erstellen)

+0

Es gibt eine Herausforderung. Ich möchte dies nur über einen einzigen Dienst tun, ohne zusätzliche Design-Layouts – user8069029

+0

dann erstellen Sie die Ansicht programmgesteuert und verwenden Sie: https://developer.android.com/reference/android/app/AlertDialog.Builder.html#setView(android. view.View) Ich habe Ihre Frage beantwortet - Ihr Kommentar ist eine neue Frage – Blundell

Verwandte Themen