java - 为什么后退按钮在此 Android webview 中不起作用?

标签 java android eclipse android-webview

让“后退”按钮在 webview 中工作时遇到问题。

我不确定我应该把 onKeyDown() 部分放在代码的什么地方(目前在最后一个 @Override 下)

mywebview.canGoBack()mywebview.goBack() 都会导致错误“无法解析 mywebview”。

如果我将 mywebview.setWebClient(...) 之后的括号一直移动到底部,mywebview-error 就会消失,但随后 会覆盖onKeyDownreturn truereturn super 会导致各种错误。

谁能告诉我该怎么做?

代码:

package com.sib;

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class SiB extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sib);

        WebView mywebview = (WebView) findViewById(R.id.webview);
        mywebview.loadUrl("url");

        WebSettings webSettings = mywebview.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mywebview.setWebViewClient(new WebViewClient());

    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) {
            mywebview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

最佳答案

使mywebview成为类实例变量。

public class SiB extends Activity {
WebView mywebview;

然后通过取出 onCreate() 中的声明确保不隐藏它它应该看起来像这样:

mywebview = (WebView) findViewById(R.id.webview);
mywebview.loadUrl("url");

并基于what I can find , Gabe 是对的。 onKeyDown() 用于后退按键仅适用于 API 4 及更低版本。 onBackPressed() 应该适用于比 API 4 更新的所有内容。

@Override
public void onBackPressed(){

    if (mywebview.canGoBack()) {
        mywebview.goBack();
        return;
    }
    super.onBackPressed();      
}

关于java - 为什么后退按钮在此 Android webview 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900959/

相关文章:

android - 使用 okHttp 固定证书

eclipse - 如何使用Eclipse插件tarlog.eclipse.plugins_1.4.2.jar

eclipse - Ctrl + Space 不适用于 Eclipse 上的内容辅助

java - 我使用 XOM : "[Fatal Error] :1:1: Premature end of file." 时遇到 fatal error

javascript - 如何从浏览器控制台访问 GWT 的 JsInterop 导出类型?

安卓 Gingerbread : NFC support - Receive Only?

java - JBOSS/WildFly : CreateProcess error=193, %1 不是有效的 Win32 程序,我该如何解决这个问题?

android - TwoLineListItem 是否可点击?我怎样才能点击它?

java - 单个 Apache 服务器可以同时处理 Tomcat 和 PHP 吗?

java - Spring MVC 形式的两个模型