2012-03-26 44 views
0

我正試圖用progress bar爲Android創建一個簡單的應用程序。一切正常。但是,這裏有兩個問題在webview上出現兩次Android進度條

1)當應用程序啓動時,我可以看到加載兩次的進度。

2)如何在初始頁面加載完成後禁用進度條。我不想顯示每次點擊進度條..

這裏是我的代碼

package com.mycom.jquery; 
import android.app.Activity; 

import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class HelloWebView extends Activity { 

WebView webview; 

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

    setContentView(R.layout.main); 
    getWindow().setFeatureInt(Window.FEATURE_PROGRESS, 
      Window.PROGRESS_VISIBILITY_ON); 

    webview = (WebView) findViewById(R.id.webview); 
    webview.getSettings().setJavaScriptEnabled(true); 

    webview.setWebViewClient(new WebViewClient() { 

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

    }); 
    final Activity activity = this; 

    final ProgressDialog progressDialog = new ProgressDialog(activity); 
    progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
    progressDialog.setMessage("Loading...Jquery.com"); 
    progressDialog.setCancelable(true); 

    webview.loadUrl("http://www.jquery.com"); 

    // WebChromeClient give progress etc info 
    webview.setWebChromeClient(new WebChromeClient() { 

     public void onProgressChanged(WebView view, int progress) { 
      progressDialog.show(); 
      progressDialog.setProgress(0); 
      activity.setProgress(progress * 1000); 

      progressDialog.incrementProgressBy(progress); 

      if (progress == 100 && progressDialog.isShowing()) 
       progressDialog.dismiss(); 
     } 
    }); 

} 

} 
+0

我不能來知道你爲什麼要創建**的客戶兩次?**即'setWebChromeClient()'和'setWebViewClient()' – 2012-03-26 05:52:10

+0

@Prahesh即時新手..因此不知道..可以指導我正確的方向 – 2012-03-26 06:08:38

+0

都可以使用webChromeClient是setIcon,顯示警報等,而WebViewClient是簡單的。這取決於你的需要你想要什麼你想要什麼 – Nepster 2014-06-11 12:11:00

回答

1

設置一個標誌,當進度爲100,然後如果這面旗幟是true立即在onProgressChanged實現回報。

+0

這是一個更好的選擇..這種方式可以啓動Progressbar任何需要 – 2012-03-28 05:57:10

0

this.getWindow()。requestFeature(Window.FEATURE_PROGRESS);嘗試從代碼中刪除此..

+0

沒有運氣..其相同..進度條出現兩次應用程序啓動 – 2012-03-26 06:03:25

2

嘗試調用

progressDialog.show(); 

onProgressChanged(WebView view, int progress) 
+0

工作正常..感謝@raju – 2012-03-26 06:07:45