7 Stimmen

Beenden des ProgressDialogs in Android

Ich möchte einen ProgressDialog öffnen, wenn ich auf das Listenelement klicke, der die Daten des angeklickten Elements aus dem Webdienst öffnet. Der ProgressDialog muss angezeigt werden, bis der WebContent des angeklickten Elements geöffnet wird.

Ich kenne den Code für die Verwendung des Fortschrittsdialogs, weiß aber nicht, wie man ihn speziell entlässt.

Ich habe gehört, dass der Handler zum Beenden des Fortschrittsdialogs verwendet werden soll, aber ich habe kein brauchbares Beispiel für die Verwendung des Handlers gefunden.

Kann mir bitte jemand sagen, wie ich den Handler verwenden kann, um den Fortschrittsdialog zu beenden?

Danke! david

15voto

ingsaurabh Punkte 15180

Hallo, das ist, was Sie wollen

        public void onClick(View v)
        {
            mDialog = new ProgressDialog(Home.this);
            mDialog.setMessage("Please wait...");
            mDialog.setCancelable(false);
            mDialog.show();
            new Thread(new Runnable()
            {
                @Override
                public void run()
                {
                    statusInquiry();
                }
            }).start();
        }

Hier ist der Webservice, der aufgerufen wird

void statusInquiry()
{
    try
    {
        //calling webservice
                    // after then of whole web part you will send handler a msg
        mHandler.sendEmptyMessage(10);
    }
    catch (Exception e)
    {
        mHandler.sendEmptyMessage(1);
    }
}

und hier kommt der Handler-Code

Handler mHandler = new Handler()
{
    public void handleMessage(android.os.Message msg)
    {
        super.handleMessage(msg);

        switch (msg.what)
        {
            case 10:
                mDialog.dismiss();
                break;
                    }
             }
      }
 };

0voto

M.E. Punkte 536

Eine Lösung könnte so aussehen:

ProgressDialog progressDialog = null;
    // ...
    progressDialog = ProgressDialog.show(this, "Please wait...", true);
    new Thread() {
        public void run() {
            try{
                  // Grab your data                                                
            } catch (Exception e) { }

            // When grabbing data is finish: Dismiss your Dialog 
            progressDialog.dismiss();
        }
   }.start();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X