2012-02-16 19 views
9

Bir web gösterimi içinde etkinlik göstergesini gösterme kodunu aldım. Birden fazla referans kontrol ettim ve hala çalışamadım. Aşağıdaki kodumu hata ayıklamama yardım edebilir misiniz?android webview istemci etkinlik göstergesi

aktivite göstergesi etkinlik'ın onCreate yönteminde aşağıdaki kodu ile kodunun altına

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

cevap

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

Yazma gelmiyor. Aynı etkinlikte ChromeClient10 sınıfı oluştur. ().

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

Nesneleri buna göre bildirme. Bana geri dön Eğer hala hatayla karşılaşıyorsan. Tam kaynak kodu sağlayacağım.

+0

Teşekkür ederim – png

+0

ChromeClient sınıfında ilerleme nesnesi yok – Rajan

3

Yeterince itibar puanına sahip olmadığımdan, ancak kabul edilen yanıt hakkında kısa bir yorum yapamadığım için yorum gönderemiyorum: İletişim kutusunun gösterilip gösterilmediğini kontrol etmeden önce null değerini kontrol edin. Bu korkulan NPE'yi önleyecektir.

if(pd != null && pd.isShowing()) { ... }