2012-02-16 40 views
9

Tôi nhận mã để hiển thị chỉ báo hoạt động trong chế độ xem web. Tôi đã kiểm tra nhiều hơn một tài liệu tham khảo và tôi vẫn không thể làm cho nó hoạt động. Bạn có thể vui lòng giúp tôi gỡ lỗi mã của tôi bên dưới không?chỉ báo hoạt động ứng dụng khách trên webview android

chỉ Hoạt động không đến với mã dưới đây

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
    final BaseActivity MyActivity = ReviewWebActivity.this; 
    setContentView(R.layout.review_web); 
    getWindow().setFeatureInt(Window.FEATURE_PROGRESS, 
      Window.PROGRESS_VISIBILITY_ON); 


    ScannedProduct product = getReviewUrl(); 
    reviewUrl = product.getReviewLink(); 

    if (reviewUrl == null) { 
     String err = product.getErrorCode(); 
     if(err.equals("")) err ="No Data Available for this product"; 
     Toast.makeText(getApplicationContext(), 
       "No Data Available for this product", 1).show(); 
     return; 
    } 

    webReview = (WebView) findViewById(R.id.webReview); 
    webReview.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 * 1000); // tried with 100 also 


     } 
    }); 
    webReview.setWebViewClient(new ReviewWebClient()); 
    webReview.getSettings().setJavaScriptEnabled(true); 

    webReview.loadUrl(reviewUrl); 
} 

Trả lời

40
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.main); 

     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!=null && pd.isShowing()) 
       { 
        pd.dismiss(); 
       } 
      } 
     }); 
     mWebView.loadUrl("http://www.yahoo.co.in"); 
     setTitle("Yahoo!"); 
    } 
} 
4

Viết dưới mã trong phương pháp onCreate Hoạt động của.

webView.setWebChromeClient(new ChromeClient()); 
progress=ProgressDialog.show(this, "", "Loading..."); 
webView.loadUrl(url); 

Tạo lớp học ChromeClient trong cùng hoạt động.

private class ChromeClient extends WebChromeClient { 
    @Override 
    public void onProgressChanged(WebView view, int newProgress) { 
     if(newProgress >= 85) { 
      progress.dismiss(); 
     } 
     super.onProgressChanged(view, newProgress); 
    } 
} 

Khai báo các đối tượng tương ứng. Quay lại với tôi Nếu bạn vẫn gặp lỗi. Tôi sẽ cung cấp mã nguồn đầy đủ.

+0

cảm ơn bạn rất nhiều – png

+0

không có đối tượng tiến bộ trong lớp ChromeClient – Rajan

3

Tôi không thể đăng nhận xét vì tôi không có đủ điểm danh tiếng nhưng chỉ nhận xét nhanh về câu trả lời được chấp nhận: Kiểm tra null trước khi kiểm tra xem hộp thoại có hiển thị không. Điều này sẽ tránh được NPE đáng sợ.

if(pd != null && pd.isShowing()) { ... } 
Các vấn đề liên quan