2

好的,所以我得到了这些错误,我不知道为什么会得到这个,但似乎对于世界其他地方来说它对他们有用,如果有另一种方法我必须这样做,我会更改代码,但它似乎是正确的现在我的日食不太喜欢我

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

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

代码

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

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

好的,这是完整的代码

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

 }
4

1 回答 1

3

你的问题是,现在onKeyDown函数是在里面声明的private class XvGFormClient extends WebViewClient

您只需将一个右括号向上移动一个函数。我添加了一些缩进,也许这会帮助你看到它:

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);
}
于 2013-02-13T01:41:29.863 回答