2012-12-15 74 views
3

我是新來的android.I在我的應用程序中使用進度對話框,但它無法停止。在我的應用程序我使用webview.In第一個活動,我有連接button.In第二個活動連接到Facebook代碼是available.In次活動代碼:進度對話框不能停止

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.facebook); 
    wvFacebook.setWebViewClient(new MyWebViewClient()); 
    wvFacebook.loadUrl(strFacebook); 
} 

private class MyWebViewClient extends WebViewClient 
{    
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     view.getSettings().setJavaScriptEnabled(true); 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 

     super.onPageStarted(view, url, favicon); 
     prDialog = ProgressDialog.show(getParent(), "In progress", "Loading, please wait..."); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     Log.e("status","calling...."); 
     super.onPageFinished(view, url); 
     prDialog.dismiss(); 
     Log.e("status","calling next......"); 
    } 
} 

當連接按鈕點擊第二項活動將被執行並獲得Facebook的page.But進度對話框不能停止。

回答

0

嘗試這樣

首先創建對話框中您onCreate()

ProgressDialog progressDialog =new ProgressDialog(getApplicationContext()); 
progressDialog.setMessage("Please Wait"); 

然後顯示在對話框中onPageStarted()方法。

progressDialog .show(); 

然後關閉它在你的onPageFinished()方法

progressDialog.cancel(); 
+0

這是not stop.still正在運行 – rams

+0

檢查你的這一行是否正在執行'Log.e(「status」,「next next ......」);'? –

+0

是這行被執行,但對話框不被解除。 – rams

0

你不應該在onPageStart創建對話框,加載網頁,onPageStart()時,可稱爲多倍。

在您onPageStart中,您創建一個新的對話框而不關閉舊對話框,因此舊的對話框將始終顯示。

爲了解決這個問題,你有很多選擇:

  1. 作爲lmran說,在的onCreate創建對話框只有一次()。在onPageStarted中顯示並在onPageFinished中關閉。
  2. 在創建一個新的對話框之前,先關閉舊的對話框。使用
0

恰好這個代碼,並嘗試一下,

@Override 
     public void onPageFinished(WebView view, String url) { 
      Log.e("status","calling...."); 
      super.onPageFinished(view, url); 
      if (prDialog != null || prDialog.isShowing()) 
       prDialog.dismiss(); 
      Log.e("status","calling next......"); 
     }