user1517108
user1517108

Reputation: 2415

onPageFinished not executing. "Method does not overwrite the Method in the superclass"

My onPageFinished is not firing. At the @OverRide the warning "Method does not overwrite the Method in the superclass".

I have pasted the relevant code. Help willbe deeply appreciated.

public class MainActivity extends Activity {
    private WebView mWebView;
    private String typeOrientation = "landscape";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        if (typeOrientation.equals("landscape"))
            {         setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.activity_main_webview);
       /* mWebView.setWebViewClient(new WebViewClient());*/
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            void onPageFinished(WebView view, String url) {
                Toast.makeText(getApplicationContext(), "Logout", Toast.LENGTH_LONG).show();
                //hide loading image
                findViewById(R.id.imageLoading1).setVisibility(View.GONE);
                //show webview
                findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
            }
        });

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            mWebView.setWebContentsDebuggingEnabled(true);
        }
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(this, "Android");
        mWebView.loadUrl("file:///android_asset/index.html");
    }

Upvotes: 0

Views: 632

Answers (2)

Rey Pham
Rey Pham

Reputation: 605

You used wrong method. Change to setWebViewClient():

mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {}
    });

Upvotes: 1

Blackbelt
Blackbelt

Reputation: 157437

onPageFinished is not part of WebChromeClient, therefore you can't override it. It belongs to WebViewClient. You can set an instance of it calling setWebViewClient. You can read more here. Please be also aware that the correct signature is

@Override
public void onPageFinished(WebView view, String url) {

with public as access specifier.

Upvotes: 1

Related Questions