Как я заставляю свое диалоговое окно прогресса отклонить после того, как webview будет загружен?

Что я должен к своему коду сделать диалоговым окном dismiss() после того, как webview загружается?

public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
            CookieSyncManager.createInstance(this);
            CookieSyncManager.getInstance().startSync();
            webview = (WebView) findViewById(R.id.webview);
            webview.setWebViewClient(new homeClient());
            webview.getSettings().setJavaScriptEnabled(true);
            webview.getSettings().setPluginsEnabled(true);
            webview.loadUrl("http://google.com");

            ProgressDialog pd = ProgressDialog.show(Home.this, "", 
                    "Loading. Please wait...", true);

        }

Я попробовал

public void onPageFinshed(WebView view, String url){
        pd.dismiss();
    }

Не работал.

6
задан brybam 19 July 2010 в 19:13
поделиться

2 ответа

: o webview.setWebViewClient (новый homeClient ()); homeClient () ????

попробуйте это

...
...
...

webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {              
                view.loadUrl(url);
                return true;
            }


          public void onPageFinished(WebView view, String url) {
                if (progressBar.isShowing()) {
                    progressBar.dismiss();
                }
            }
 webview.loadUrl("http://www.google.com");

}

Обновление :: это хороший пример.

Android WebView и решение для неопределенного прогресса

16
ответ дан 8 December 2019 в 05:19
поделиться

Как вы получаете доступ к pd в onPageFinshed () ? (И вы уверены, что он действительно вызывается при загрузке страницы?)

В вашем onCreate () попробуйте передать pd своему homeClient , чтобы homeClient может закрыть диалоговое окно.

Ваш домашний клиент должен выглядеть так:

private class homeClient extends WebViewClient {

    private ProgressDialog pd;

    public homeClient(ProgressDialog pd) {
        this.pd = pd;
    }

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {           
        view.loadUrl(url); 
        return true; 
    } 

    @Override
    public void onPageFinished (WebView view, String url) {
        if (pd.isShowing()) {
            pd.dismiss();
        }
    }
}

В вашем onCreate () :

ProgressDialog pd = ProgressDialog.show(Fbook.this, "", 
                "Loading. Please wait...", true);
webview.setWebViewClient(new homeClient(pd));
1
ответ дан 8 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: