2011-11-09 162 views
2

我對開發Android應用程序很陌生。基本上我正在製作一個webview模板來顯示移動優化網站的不同網址。Android上的進度條webview

該應用程序有兩個頁面:
1個啓動頁面。
1個webview頁面。

我已經通過幾個教程工作,這部分實際上是工作,所以問題是...

我想顯示一個進度條,當web視圖加載該網站時,網站有哪些,然後消失已加載。

我已經做了很多嘗試,讓這個工作,但沒有成功。

XML文件:
主要有與ID:,並用進度條的WebView ID:progressbar(不知道這是否應該在那裏)

Java文件:
Link to preeview of java file

回答

3

您忘記了添加ProgressBar的支持。

setContentView(R.layout.layout_file)之前加上以下語句;

// Adds Progrss bar Support 
this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 

然後setContentView(R.layout.layout_file);一個呼叫後加入這一行,使進度可見現在

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

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

你可以在這裏是指完全教程:ProgressBar in WebView。我只提到該網站的代碼。

編輯

從Android官方文檔WebView又如

+0

也許我是傻,但我真的不能得到這個工作。你可以創建一個可用的Java文件嗎?有什麼我需要改變的XML? – user928615

1

你可以做到這一點通過增加一個新的屬性,你的活動:

protected ProgressDialog dialog; 

當你要打開網址加上:

dialog = ProgressDialog.show(this, "LOADING", "Website is loading...", true); 
YourWebView.loadUrl(url); 

/* Prevent WebView from Opening the Browser */ 
YourWebView.setWebViewClient(new InsideWebViewClient()); 

然後還要延長WebViewClient類,並添加到onPageFinished方法:

protected class InsideWebViewClient extends WebViewClient { 
    @Override 
    public void onPageFinished(WebView view, String url) 
    { 
    super.onPageFinished(view, url); 
    if(dialog != null && dialog.isShowing()) 
     dialog.dismiss(); 
    } 
}