Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebViewClient onKeyDown override errors

Ok, so I get theses errors i dont know why i get this but it seems the for the rest of the world it works for them if theres another way i have to go about doing this i will change the code but it seems as of right now my eclipse doesn't like me very much

The method onKeyDown(int, KeyEvent) of type XvGForm.XvGFormClient must override or implement a supertype method

and

The method onKeyDown(int, KeyEvent) is undefined for the type WebViewClient

CODE

   @Override
   public boolean onKeyDown (int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {

        mWebView.canGoBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

ok so here is the full code

package com.xtremevisiongaming.xtremevisiongamingformapp;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.view.Window;
public class XvGForm extends Activity {

   private WebView mWebView;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_xv_gform);

    mWebView = (WebView)  findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.xtremevisiongaming.com/forum/forum.php");
    mWebView.setWebViewClient(new XvGFormClient());



  }
 private class XvGFormClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{ 
    webview.loadUrl(url);
    return true;
}


@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {

        mWebView.canGoBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

}

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_xv_gform, menu);
    return true;
   }

 }
like image 491
user2066751 Avatar asked Jun 29 '26 20:06

user2066751


1 Answers

Your problem is that right now the onKeyDown function is declared inside the private class XvGFormClient extends WebViewClient

You just need to move one closing brackets up by one function. I add some indentation, maybe that will help you see it:

private class XvGFormClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url)
    { 
        webview.loadUrl(url);
        return true;
    }
}

@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {

        mWebView.goBack(); // go back in only the web view
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
like image 63
Matthieu Avatar answered Jul 02 '26 12:07

Matthieu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!