【问题标题】:ProgressDialog is not applicable for the arguments for fragmentProgressDialog 不适用于片段的参数
【发布时间】:2014-03-28 15:24:28
【问题描述】:

我无法在Fragment 中使用进度对话框。但是,我尝试在 Activity 中使用进度对话框,并且成功了。

这是我的部分代码:

private class MyCustomWebViewClient extends WebViewClient {
      @Override
      public void onPageStarted(WebView view, String url, Bitmap favicon) {
          super.onPageStarted(view, url, favicon);
          final ProgressDialog pd = ProgressDialog.show(this, "", "Loading...",
               true);
          pd.setCancelable(false);
          pd.setTitle("Please wait");
          pd.setMessage("Page is loading..");
          pd.show();
      }
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
          view.loadUrl(url);
          return true;
      }

错误是:

类型中的方法 show(Context, CharSequence, CharSequence, boolean) ProgressDialog 不适用于参数 (CommunityFragment.MyCustomWebViewClient,字符串,字符串,布尔值)

我该如何解决这个问题?

【问题讨论】:

    标签: java android android-fragments webview progressdialog


    【解决方案1】:

    变化:

    final ProgressDialog pd = ProgressDialog.show(this, "", "Loading...",
               true);
    

    到:

    final ProgressDialog pd = ProgressDialog.show(super.getActivity(), "", "Loading...",
               true);
    

    使用fragment时,需要提供父activity的上下文。

    【讨论】:

    • 感谢您的 2 个回答,但仍然无法正常工作:方法 getActivity() 未定义为 WebViewClient 类型
    • 在这种情况下,您需要将活动的上下文传递给此方法。
    【解决方案2】:

    你有这个:

    final ProgressDialog pd = ProgressDialog.show(this, "", "Loading...",
               true);
    

    this 不是有效的上下文。如果是Activity,请使用ActivityName.this。如果是Fragment,请使用CommunityFragment.this.getActivity()

    【讨论】:

    【解决方案3】:

    在调用这个类的时候尽量做一个构造函数,把父activity作为参数传递。

    这是一个例子:

    Activity activity;
    public MyCustomWebViewClient (Activity _activity) {
        this.activity = _activity;
    }
    

    然后使用它:

    final ProgressDialog pd = ProgressDialog.show(activity, "", "Loading...",
               true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多