2012-02-07 18 views
5

Sto utilizzando la visualizzazione Web per mostrare pagine html e voglio mostrare una finestra di dialogo di avanzamento finché la pagina non viene caricata. Quando ciò è fatto, la finestra di dialogo deve scomparire. Ho usato AsyncTask per questo, ma la finestra di dialogo non mostra. Vedere il mio codice qui sotto:Come visualizzare una finestra di dialogo di avanzamento mentre la pagina HTML viene caricata in 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(); 
     } 
    } 

E se prendo l'aiuto di Google Documenti per visualizzare la pagina web, quindi viene visualizzato il tag HTML, ma non la pagina. Quello che segue è il codice:

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); 

Qualcuno può aiutarmi con questo?

risposta

13

di questo codice:

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

cosa devo mettere (vista WebView, stringa URL, ** Bitmap favicon **) E mi sta dando l'errore di tempo di compilazione in ** ** favicon Bitmap linea. Cosa dovrei mettere loro. –

+0

Grazie mille Fatto !! –

+0

grazie mille amico ... mi ha salvato – Noman

1

Si può provare seguente codice,

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

è possibile mostrare il Progress del WebView nella barra del titolo della WebView. Here è un esempio completo per lo stesso che mostra ProgressStatus nella barra Title dello 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

Benvenuti in overflow dello stack. Puoi per favore elaborare più la tua risposta. –

+1

Specialmente quando rispondi a una vecchia domanda che ha già accettato e aggiornato le risposte, fornisci qualche spiegazione. In che modo la tua risposta è diversa e migliore della risposta precedentemente accettata? –

Problemi correlati