请原谅我,如果这个问题之前被问了太多次。但我一直试图解决它并尝试了所有的解决方案,但似乎没有什么对我有用。你能指点一下我在这里失踪了吗? 当我按下移动设备上的后退按钮时,它会退出应用程序而不是转到webView的后页。 我非常感谢你帮助我在这里做错了什么。
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class MainActivity extends Activity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/index.html");
}
@Override
public void onBackPressed() {
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
super.onBackPressed();
}
}
}
答案 0 :(得分:2)
onCreate
中的此语句定义了一个名为myWebView
的局部变量,它隐藏了具有相同名称的实例变量:
WebView myWebView = (WebView) findViewById(R.id.webView1);
因此,实例变量的值为null
,而onBackPressed
可能会抛出NullPointerException
。
尝试将该语句更改为:
myWebView = (WebView) findViewById(R.id.webView1);
答案 1 :(得分:0)
试试这个
mainView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) {
if(webView!=null)
{
if(webView.canGoBack())
{
webView.goBack();
}
}
}
}
return true;
}
});