我正在尝试设置一个加载圆圈以显示在我的android网络视图应用中。自从开始以来,我取得了很多进步。现在,我在setProgress行出现错误。

错误消息是:

对于类型为new WebChromeClient(){}的方法setProgress(int)未定义

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.webkit.WebChromeClient;

public class MainActivity extends Activity
{
    //Configure the webview setup in the xml layout
    public WebView myWebView;


     @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            //Remove title bar as we already have it in the web app
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);

            getWindow().requestFeature(Window.FEATURE_PROGRESS);
            //Point to the content view defined in XML
            setContentView(R.layout.activity_main);
            myWebView = (WebView) findViewById(R.id.webview);
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);


            WebSettings webSettings = myWebView.getSettings();
            //Yes, we want javascript, pls.

            webSettings.setJavaScriptEnabled(true);
            //Make sure links in the webview is handled by the webview and not sent to a full browser
            myWebView.setWebViewClient(new WebViewClient());
            //And let the fun begin
            myWebView.loadUrl("http://www.google.com");

            myWebView.setWebChromeClient(new WebChromeClient() {
                 public void onProgressChanged(WebView view, int progress) {
                  // Activities and WebViews measure progress with different scales.
                  // The progress meter will automatically disappear when we reach 100%
                  this.setProgress(progress * 100);

                 }});

        }



    @Override
    public void onBackPressed(){
        myWebView.goBack();
    }


}

最佳答案

改为

MainActivity.this.setProgress(progress * 100);


要不就

setProgress(progress * 100);


这样您就可以明确引用父类实例。在this内仅执行WebChromeClient时,将引用该类的实例,因此会出现编译时错误。

由于您正在使用WebView,请参阅文档以获取有关WebView以及所有其他相关内容(包括客户端)的更多信息。

关于java - Android webview:未定义类型new WebChromeClient(){}的方法setProgress(int),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14741525/

10-09 00:41