2015-01-03 69 views
0

我想顯示一個preloader,然後加載完整的頁面作爲webview但這裏是一個小問題,我已經做了preloader但它繼續下去,並沒有結束它。onPreExcute作爲預加載器的webview中的片段

如何告訴腳本在加載頁面時停止顯示對話框。

public class EzFragment extends Fragment { 

     public ProgressDialog pDialog; 


     public EzFragment(){} 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      new getFeed().execute(); 

     } 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 

      View rootView = inflater.inflate(R.layout.fragment_ez, container, false); 
      WebView myWebView = (WebView) rootView.findViewById(R.id.webView1); 

      String summary = "<html><head> <link rel=\"stylesheet\" type=\"text/css\" 
href=\"http://www.example.com/demo/android_connect/assets/style/jquery.fullPage.css\" /></head></html>"; 
      myWebView.loadData(summary, "text/html", null); 


      myWebView.loadUrl("http://www.example.com/demo/android_connect/get_ez_webmob.php"); 
      WebSettings webSettings = myWebView.getSettings(); 
      webSettings.setJavaScriptEnabled(true); 



      return rootView; 
     } 


    private class getFeed extends AsyncTask<Void, Void, Document> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(getActivity()); 
      pDialog.setTitle("Connect to Server"); 
      pDialog.setMessage("This process can take a few seconds to a few minutes, depending on your Internet Connection Speed."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
     } 

    @Override 
    protected Document doInBackground(Void... arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    } 

是否有可能的WebView添加到文檔doInBackground才能在後臺加載頁面?!

回答

1

我怎麼能告訴腳本停止顯示對話框頁面時 加載。當頁面中的WebView滿載

使用onPageFinished解僱ProgressDialog因爲onPageFinished方法被稱爲:

myWebView.setWebViewClient(new WebViewClient(){ 
     //..... 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      Log.d("mytag","Page Loading Finished!"); 
      super.onPageFinished(myWebView, url); 
      // dismiss ProgressDialog here 
     } 

    }); 
+0

謝謝,但我應該在哪裏添加此代碼?!在我的課結束之前?! –

+0

@MacTaylor:'webSettings.setJavaScriptEnabled(true); 'line –

+0

謝謝,這個方法有一個小問題,當頁面加載開始的時候,preloader就消失了!你認爲添加webview doInBackground不是一個更好的舉措? –

0
@Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     if (pDialog.isShowing()) { 
      pDialog.dismiss(); 
     } 

    } 

停止在postexecute對話框..

+0

但我需要web視圖加載之後進行! –