Android keycode_back关闭应用程序

时间:2011-09-01 08:54:43

标签: android url back keycode

我希望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;}

对我不起作用,我不知道为什么(悲伤的安卓面孔)

1 个答案:

答案 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);
}