2012-03-28 9 views
1

Ich habe eine Methode, die meine Artikel von einem Server auflisten. Daher benötigt diese Methode Zeit bis zum Erhalt aller Elemente. Daher möchte ich ProgressDialog verwenden, um auf diese Methode zu warten. Ich habe einige Module gelesen, aber ich konnte keine brauchbare Lösung finden.Verwenden von Timer mit ProgressDialog

public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      // setContentView(R.layout.main; 
        loginScreen(); 
     } 
    public boolean getItems() throws MessagingException 
      { 
        items receiving here 
      } 
    public void loginScreen() 
      { 
        setContentView(R.layout.main); 
        Button loginBtn = (Button) findViewById(R.id.btnLogin); 

        loginBtn.setOnClickListener(new Button.OnClickListener() 
        {   
         public void onClick(View arg0) 
         { 
          getItems(); 
         } 
        } 
      } 

Auf Knopf klicken Ich rufe die Methode auf, die alle Einzelteile empfing. Wenn ich auf die Schaltfläche klicke, zeige ich eine Fortschrittsanzeige an, bis alle Elemente ankommen.

Entschuldigung für mein Englisch. Jede Antwort wäre willkommen.

Antwort

1

erstellen Sie eine AsyncTask, die eine ProgressBar auf getItems() zeigt. Sie benötigen eine AsyncTask, weil der Haupt-Thread beschäftigt sein wird, Sachen vom Server zu holen und ProgressBar wird nicht angezeigt, bis das beendet ist.

+0

Vielen Dank! Es funktioniert fast wie ich will. Progressdialog wird angezeigt, wenn sich die Methode auf das Ergebnis vorbereitet, aber es ist einfach zu schnell. Also, der Fortschrittdialog zeigt sich so für kurze Zeit. Kann ich etwas hinzufügen (wie Timer), um die Show des Fortschrittdialogs für 2 Sekunden länger zu verzögern? – Merve

+0

Alles, was Sie tun müssen, ist 'Thread.sleep (2000);', was dazu führt, dass es sich um 2 Sekunden oder 2000 Millisekunden verzögert. – Mayank

+0

Es funktioniert absolut wie ich will! Nochmals vielen Dank – Merve