линия

у открыть ProgressDialog, когда я щелкаю элемент списка, который открывает данные выбранного элемента из веб-службы. ProgressDialog должен отображаться до тех пор, пока не откроется веб-содержимое выбранного элемента.

Я знаю код использования диалога прогресса, но я не знаю, как его отменить.

Я слышал, что Handler должен использоваться для закрытия диалогового окна Progress, но я не нашел достойного примера для использования Handler в конечном итоге.

Кто-нибудь, пожалуйста, скажите мне, как я могу использовать обработчик, чтобы закрыть диалог прогресса?

Спасибо Дэвид

Ответы на вопрос(2)

Решение Вопроса

Привет это то что ты хочешь

        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();
        }

вот веб-сервис, который называется

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);
    }
}

и здесь идет код обработчика

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

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

Решение может быть таким:

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();
 Warpspace29 сент. 2011 г., 07:58
Это приведет к сбою, если действие будет уничтожено до того, как вы доберетесь доprogressDialog.dismiss() линия

Ваш ответ на вопрос