Janakipathi Chowdary
Janakipathi Chowdary

Reputation: 31

Android: Unable to dismiss the ProgressDialog after loading of a WebView

Unable to dismiss the progress dialog after WebView loaded

Here is the code

webview.setWebViewClient(new WebViewClient() {

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
            public void onLoadResource (WebView view, String url) {
                if (progressDialog == null) {
                    progressDialog = new ProgressDialog(activity);
                    progressDialog.setMessage("Chargement en cours");
                    progressDialog.show();
                }
            }
            public void onPageFinished(WebView view, String url) {
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
                    progressDialog = null;
                }
            }
        });
webview.loadUrl("http://www.someexample.com");

Upvotes: 0

Views: 554

Answers (4)

Sebin Sunny
Sebin Sunny

Reputation: 1803

Try this it will work

protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            webview = (WebView) findViewById(R.id.activity_main_webview);
            WebSettings webSettings = webview.getSettings();
            webSettings.setJavaScriptEnabled(true);

            webview.loadUrl("https://someexample.com");
            webview.setWebViewClient(new WebViewClient() {


                public void onLoadResource (WebView view, String url) {
                    if (progressDialog == null) {
                        progressDialog = new ProgressDialog(MainActivity.this);
                        progressDialog.setMessage("Chargement en cours");
                        progressDialog.show();
                    }
                }

                public void onPageFinished(WebView view, String url) {

                    progressDialog.dismiss();
                    //hide loading image
                   // findViewById(R.id.progressBar1).setVisibility(View.GONE);
                    //show webview
                    findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
                }
            });
        }
    }

Upvotes: 0

Andolasoft Inc
Andolasoft Inc

Reputation: 1296

You can do something like this as below :

public void onPageFinished(WebView view, String url) {
        progressDialog.dismiss();
    }

Upvotes: 0

kiran kumar
kiran kumar

Reputation: 1422

Create progress dialogue like

ProgressDialog progressDialog= ProgressDialog.show(this, "", "Loading...",true);

onPageFinished be like

 public void onPageFinished(WebView view, String url) {
     if (progressDialog != null)
         if (progressDialog.isShowing())
             progressDialog.dismiss();
 }

Upvotes: 0

Jaydeep Devda
Jaydeep Devda

Reputation: 735

try overriding all functions

 webview.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {              
        view.loadUrl(url);
        return true;
    }
    @Override
    public void onLoadResource (WebView view, String url) {
        if (progressDialog == null) {
            progressDialog = new ProgressDialog(activity);
            progressDialog.setMessage("Chargement en cours");
            progressDialog.show();
        }
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        if (progressDialog.isShowing()) {
            progressDialog.dismiss();
            progressDialog = null;
        }
    }
}); 

webview.loadUrl("http://www.someexample.com");

Upvotes: 1

Related Questions