如何在片段中使用ProgressDialog和webview

时间:2012-08-29 11:34:23

标签: android android-fragments android-webview

现在我试图在webview中显示一个页面,加载需要一些时间,同时我想显示progressDialog。我能做的最好的是下面的代码,但问题是我在onCreateView中执行它,所以progressDiealog只显示,直到创建视图,这不是我想要的。我知道我必须在onActivityCreated中使用它,但我不知道如何做到这一点,谢谢所有提前

public class someFragment extends SherlockFragment {
Context context;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved)
    {
    View v = inflater.inflate(R.layout.some_layout, group, false);
    final ProgressDialog pd = ProgressDialog.show(getActivity(),  "", "Loading", true);

    final WebView myWebView = (WebView) v.findViewById(R.id.webViewsome);
    myWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            pd.dismiss();
        }
    });

    myWebView.getSettings().setPluginsEnabled(true);
    myWebView.getSettings().setBuiltInZoomControls(false); 
    myWebView.getSettings().setSupportZoom(false);
    myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);   
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.getSettings().setAllowFileAccess(true); 
    myWebView.getSettings().setDomStorageEnabled(true);
    myWebView.setInitialScale(25);

    myWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);

    myWebView.loadUrl("http://www.test.com/test-0.jpg");

    return v;
    }
}

2 个答案:

答案 0 :(得分:1)

SomeFragment

中试试
private class MyWebViewClient extends WebViewClient {

    @Override
    public void onPageFinished(WebView view, String url) {
        //remove your progressdialog here
        super.onPageFinished(view, url);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        //show your progressdialog here
        super.onPageStarted(view, url, favicon);
    }

}

然后:

webView.setWebViewClient(new MyWebViewClient());

答案 1 :(得分:0)

您可以做的一件事是,onCreateView在其中AsyncTask开始progressDialog。在onPageFinished的{​​{1}}中(在完全加载网页后),取消该任务。希望它有用。