2012-02-07 16 views
5

Estoy usando la vista web para mostrar páginas html, y quiero mostrar un cuadro de diálogo de progreso hasta que se cargue la página. Cuando se hace eso, el diálogo debe desaparecer. He usado AsyncTask para esto, pero el cuadro de diálogo no se muestra. Véase mi código de abajo:Cómo mostrar un cuadro de diálogo de progreso mientras se carga la página HTML en 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(); 
     } 
    } 

Y si tomo la ayuda de Google Docs para mostrar la página web, a continuación, se muestra la etiqueta HTML, pero no la página. Debajo está ese código:

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

¿Alguien me puede ayudar con esto?

Respuesta

13

Usar este código:

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

lo que debería poner (vista WebView, String url, ** ** favicon de mapa de bits) Me está dando el error de tiempo de compilación en el favicon de mapa de bits ** ** línea. ¿Qué debería poner su. –

+0

Muchas gracias! –

+0

muchas gracias hombre ... me salvó – Noman

1

Puede probar siguiente código,

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

muestra cuales los Progress del WebView en la barra de título de la vista Web. Here es un ejemplo completo para el mismo que muestra ProgressStatus en la barra Title del 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

Bienvenido a Stack Overflow. ¿Puedes por favor elaborar más tu respuesta? –

+1

Especialmente cuando responde una vieja pregunta que ya ha aceptado y modificado las respuestas, brinde alguna explicación. ¿Cómo es su respuesta diferente y mejor que la respuesta previamente aceptada? –

Cuestiones relacionadas