2012-02-07 8 views
5

Używam widoku internetowego do wyświetlania stron HTML i chcę wyświetlać okno postępu, dopóki strona nie zostanie załadowana. Kiedy to nastąpi, okno dialogowe musi zniknąć. Użyłem do tego AsyncTask, ale okno dialogowe się nie pokazuje. Zobacz mój poniższy kod:Jak wyświetlić okno dialogowe postępu, gdy strona HTML jest ładowana w przeglądarce WebView

class DownloadAysnc extends AsyncTask<String, String, Void> 
    { 
    ProgressDialog progressDialog; 
     @Override 
      protected void onPreExecute() { 
      super.onPreExecute(); 
      progressDialog = ProgressDialog.show(OverView.this, "", "Please Wait ..."); 
     } 

     @Override 
      protected Void doInBackground(String... arg0) { 
      webView.loadUrl("http://marico.com/html/investor/overview.php"); 
     return null; 
     } 

     @Override 
      protected void onPostExecute(Void result){ 
      super.onPostExecute(result); 
      progressDialog.dismiss(); 
     } 
    } 

I jeśli wziąć pomocą Google Docs, aby wyświetlić stronę internetową, a następnie tag HTML jest widoczny, ale nie strony. Poniżej znajduje się kod:

String url = "http://google.co.in/"; 
String googleDocsUrl = "http://docs.google.com/viewer?url="+url; 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(googleDocsUrl), "text/html"); 
startActivity(intent); 

this.myWebView.loadUrl(googleDocsUrl); 

Czy ktoś może mi w tym pomóc?

Odpowiedz

13

użyć tego kodu:

webView.setWebViewClient(new WebViewClient() { 
    ProgressDialog prDialog; 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     prDialog = ProgressDialog.show(Activity.this, null, "loading, please wait..."); 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     prDialog.dismiss(); 
     super.onPageFinished(view, url); 
    } 
}); 

webView.loadUrl(url); 
+0

co powinieneś umieścić (widok WebView, URL String, ** Bitmapa favicon **) Daje mi błąd czasu kompilacji w linii ** Bitmap favicon **. Co powinienem umieścić? –

+0

Wielkie dzięki! –

+0

dziękuję wielkiemu człowiekowi ... uratowało mnie – Noman

1

Można spróbować następujący kod,

progDailog = ProgressDialog.show(loginAct,"Process ", "please wait....",true,true); 

new Thread (new Runnable() 
{ 
    public void run() 
    { 
     // your code goes here 
    } 
}).start(); 

Handler progressHandler = new Handler() 
{ 

    public void handleMessage(Message msg1) 
    { 
     progDailog.dismiss(); 
    } 
} 
2

Można pokazać Progress z WebView w pasku tytułu w WebView. Here jest kompletnym przykładem tego samego, który pokazuje ProgressStatus w pasku z WebView.

3
v.setWebChromeClient(new WebChromeClient(){ 
     @Override 
     public void onProgressChanged(WebView view, int newProgress) { 
      WebView v=(WebView)findViewById(R.id.wv); 
      //Toast.makeText(mContext, v.getUrl() + newProgress +"uploading...", Toast.LENGTH_SHORT).show(); 
      ProgressBar s=(ProgressBar)findViewById(R.id.progressBar1); 
      s.setMax(100); 
      s.setProgress(newProgress); 
      if(newProgress==100){       
       v.setVisibility(0); 
       //Toast.makeText(mContext, "upload finished...", Toast.LENGTH_SHORT).show(); 
     }else{ 
       v.setVisibility(8); 
       //Toast.makeText(mContext, "uploading...", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
+1

Witamy w przepełnieniu stosu. Czy mógłbyś bardziej rozwinąć swoją odpowiedź? –

+1

Szczególnie, gdy odpowiadasz na stare pytanie, które już zaakceptowało i wznowiło odpowiedzi, wyjaśnij je. Jaka jest twoja odpowiedź inna i lepsza niż wcześniej zaakceptowana odpowiedź? –

Powiązane problemy