我希望Android手机上的后退按钮就像我的网络浏览器的后退按钮一样。目前,它关闭应用程序而不是返回到上一个屏幕。
我写了这个令人难以置信的丑陋黑客来解决它如下:
Stack stack = new Stack();
每次加载新的webview时,我都会使用
将其存储在堆栈中stack.push(url);
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Back?
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Back
String url = stack.pop();
if(url.indexOf("index.html")>0)stack.push("file:///android_asset/index.html");
this.loadUrl(url);
}
// Return
return true;
}
现在,我真的想以android的方式去做但不知道如何实现这个......
任何帮助都将非常感激。
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // do something on back. return true; } return super.onKeyDown(keyCode, event);}
带
@Overridepublic void onBackPressed() {// do something on back.return;}
对我不起作用,我不知道为什么(悲伤的安卓面孔)
答案 0 :(得分:0)
你可以这样做:
private WebView webView;
...
webView = (WebView) findViewById(R.id.webview);
...
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView != null && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}