0

AndroidWebViewアプリに表示される読み込みサークルを設定しようとしています。始めてからかなりの進歩を遂げました。現在、setProgressという行でエラーが発生しています。

エラーメッセージは次のとおりです。

メソッドsetProgress(int)は、タイプnew WebChromeClient(){}に対して未定義です。

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();
    }


}
4

1 に答える 1

3

代わりに行う

MainActivity.this.setProgress(progress * 100);

あるいは単に

setProgress(progress * 100);

そのため、親クラスインスタンスを明示的に参照します。thisの内部で実行すると、そのWebChromeClientクラスのインスタンスが参照されるため、コンパイル時エラーが発生します。

WebViewWebViewを使用しているため、およびその他の関連するすべて(クライアントを含む)の詳細については、ドキュメントを参照してください。

于 2013-02-07T00:30:19.190 に答える