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

1つの関数だけ1つの閉じ括弧を上に移動する必要があります。私はいくつかのインデントを追加します、多分それはあなたがそれを見るのを助けるでしょう:

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 に答える