2010-10-19 5 views
0

J'ai essayé de mettre une barre de progression de bouton de retour dans un webview et de garder le chargement de l'URL dans mon application au lieu d'utiliser le navigateur Web par défaut Android. Si je parviens à continuer à naviguer dans l'application et garder le bouton de retour, la barre de progression ne s'affiche jamais si je parviens à obtenir la barre de progression pour afficher le code en bas pour shouldoverideurl viens jamais lu et la valeur par défaut lancements de navigateur, j'ai essayé tous les tutoriels google et la solution, mais aucun d'entre eux ne fonctionne. J'utilise actuellement google .. Quelqu'un peut-il aider ??Ajout d'une barre de progression à la visualisation Web

public class livebrad extends Activity { 

WebView mWebView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    // Adds Progrss bar Support 
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
    setContentView(R.layout.brows); 

    // Makes Progress bar Visible 
    getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 

    // Get Web view 
    mWebView = (WebView) findViewById(R.id.webView); //This is the id you gave 
                 //to the WebView in the main.xml 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setSupportZoom(true);   //Zoom Control on web (You don't need this 
                 //if ROM supports Multi-Touch   
    mWebView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM 

    // Load URL 
    mWebView.loadUrl("http://www.bbc.co.uk"); 


    // Sets the Chrome Client, and defines the onProgressChanged 
    // This makes the Progress bar be updated. 
    final Activity MyActivity = this; 
    mWebView.setWebChromeClient(new WebChromeClient() { 
    public void onProgressChanged(WebView view, int progress) 
    { 
     //Make the bar disappear after URL is loaded, and changes string to Loading... 
     MyActivity.setTitle("Loading..."); 
     MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded 

     // Return the app name after finish loading 
     if(progress == 100) 
      MyActivity.setTitle(R.string.app_name); 

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



}//End of Method onCreate 

}

Répondre

0

Si vous voulez afficher la barre de progression chaque utilisateur clique liens, ajoutez le code pour montrer votre méthode ProgressBar en shouldOverrideUrlLoading().

0

Vous venez de manquer cette déclaration.

mWebView.setWebViewClient(..) 
1
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class SandbarinFacebook extends Activity { 

WebView mWebView; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fb); 

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

     mWebView = (WebView) findViewById(R.id.webkitWebView1); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setSupportZoom(true); 
     mWebView.getSettings().setBuiltInZoomControls(true); 
     mWebView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       if(pd.isShowing() && pd!=null) 
       { 
       pd.dismiss(); 
       } 
      } 
     }); 
     mWebView.loadUrl("http://m.facebook.com/sandbarathens"); 

    } 
}