Android: проблема с диалоговым окном - PullRequest
1 голос
/ 14 февраля 2011

Я использую Progress Dialog, впервые, когда я загружаю веб-представление и создаю объект в OnCreate

            progressBar = new ProgressDialog(this);
    progressBar.setCancelable(true);
    progressBar.setMessage("Loading...");
    progressBar.setOnCancelListener(new OnCancelListener() {

        public void onCancel(DialogInterface arg0) {

            if (progressBar.isShowing())
                progressBar.dismiss();
            finish();
        }
    });
    progressBar.show();

и отклонить его на страницеFinished

            public void onPageFinished(WebView view, String url) {
                Log.i("TEST", "Finished loading URL: " + url);
                if (progressBar.isShowing()) {
                    progressBar.dismiss();
                }
            }

затем я загружаю другой URL из меню, затем пишу код в onPageStarted

                   @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                 if(progressBar.isShowing()){}

                 else
                 //progressBar.
                 progressBar.show();
                super.onPageStarted(view, url, favicon);
            }

во второй раз круг в диалоге не работает, все все отлично работает. Вы можете увидеть ту же проблему в ApiDemos Alos. пожалуйста, установите приложение Apidemos на устройстве, затем перейдите в раздел-> индикатор выполнения-> диалоговое окно-> нажмите «показать промежуточный элемент» затем уволить с помощью кнопки назад. Теперь добавьте нажмите на ту же кнопку, анимация круга будет работать

Спасибо заранее.

1 Ответ

0 голосов
/ 15 февраля 2011

Это проблема, связанная с активностью, потому что когда мы закрываем хранилище активности диалога, это значение, поэтому во второй раз вызываем его, загружаем то же состояние диалога, поэтому необходимо реализовать onPrepareDialog для сброса нового значения и просто использовать removeDialog (int) перед показом. пожалуйста, проверьте это ProgressBar не сбрасывается в "0" при открытии во второй раз

код здесь

   @Override
    protected void onPrepareDialog(int id, Dialog dialog) {

        switch (id) {
        case DIALOG_WEBVIEW:
            progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressBar.setMessage("Loading...");
            progressBar.setCancelable(true);
            //mProgressDialog.show();
            return;
        default:
            return ;
        }
        //super.onPrepareDialog(id, dialog);
    }

для onCreateDialog

protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DIALOG_WEBVIEW:
                progressBar = new ProgressDialog(this);
                progressBar.show();
                return progressBar;
            default:
                return null;
        }
    }

наконец, чтобы показать, отклонить и удалить, как это

                            removeDialog(DIALOG);
                showDialog(DIALOG); 
                            dismissDialog(DIALOG);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...