2010-10-19 102 views
0

我一直在试图在webview中放置一个后退按钮进度条,并将url加载到我的应用程序中,而不是使用android默认web浏览器。向webview添加进度条

如果我设法继续在应用程序中浏览并保留后退按钮,进度条永远不会显示,如果我设法让进度条显示底部的代码为shouldoverideurl出现从未阅读和默认浏览器启动,我尝试了所有的谷歌教程和解决方案,但没有一个工作。我目前正在使用谷歌..任何人都可以帮忙?

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 

}

回答

0

如果你想显示进度条每次用户点击链接,添加代码,以显示你的shouldOverrideUrlLoading()方法进度。

0

你刚刚错过了这个说法。

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

    } 
}