2012-02-09 8 views
0

私は以下のコード を持っていますが、進捗状況が100%であっても、Progress Dialogは一度終了しません。WebViewのwebChromeClientでProgressDialogが終了しない

try{ 

    webView = (WebView) findViewById(R.id.browserwebview); 
    webView.getSettings().setJavaScriptEnabled(true); 





    webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) 
      { 
       catalogProgressDialog = new ProgressDialog(activity); 
       catalogProgressDialog.setCancelable(true); 


       catalogProgressDialog.show(); 
       catalogProgressDialog.setProgress(0); 
       activity.setProgress(progress * 1000); 

       catalogProgressDialog.incrementProgressBy(progress); 

       if(progress == 100 && catalogProgressDialog.isShowing()){ 
        catalogProgressDialog.dismiss();      

       } 


      } 
     }); 

     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
      { 
       Toast.makeText(activity, "Oh no!"+ description, Toast.LENGTH_SHORT).show(); 

      } 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       view.scrollBy(0, view.getContentHeight()); 


      } 


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




     webView.loadUrl("http://www.google.com"); 
     webView.pageDown(true); 
     webView.setHorizontalScrollBarEnabled(true); 
     webView.setVerticalScrollBarEnabled(true); 

} 
catch (Exception e) { 
    e.printStackTrace(); 
} 

進捗状況は表示されません。ありがとう。

答えて

1

本当にあなたはメインのUIスレッドを使用していますか?

catalogProgressDialog.dismiss(); 

ハンドラーで試しましたか?

handler.post(new Runnable() { 

      @Override 
      public void run() { 
       catalogProgressDialog.dismiss(); 
      } 
     }); 
+0

おかげで、私はポストに完全に今のコードを更新している、私はhandler.post(新しいRunnableを(){ '、任意の提案'でNullPointerExceptionが取得し、あなたのコードを試してみました。 – Mukunda

+1

はそう、あなたのコード内のハンドラを定義しますonCreate領域でこれを実行してみてください:handler = new Handler();ハンドラをクラス変数として定義してください。 – runor49

関連する問題