u010089114
2015-12-10 03:51
采纳率: 30.3%
浏览 3.5k

安卓监听返回键无反应

重写了onKeyDown(int keyCode, KeyEvent event) 但是按返回键没反应,去掉onKeyDown(int keyCode, KeyEvent event) 方法就有效了
public boolean onKeyDown(int keyCode, KeyEvent event)

{

if (keyCode == KeyEvent.KEYCODE_BACK )

{

//为什么重写了此方法返回键就无效了呢
return true;
}

        return super.onKeyDown(keyCode, event);

    }  
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • g_miana 2015-12-10 05:31

    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK ) {
    // XX 是要从哪返回的view
    XX.wv.goBack();
    }

    评论
    解决 无用
    打赏 举报
  • g_miana 2015-12-10 05:33

    上面手误打错了
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK ) {
    // XX 是要从哪返回的view
    XX.goBack();
    }
    }

    评论
    解决 无用
    打赏 举报
  • Soft_LGH 2015-12-10 07:20

    你如果 return true ; 最终结果就是拦截了了所有按键结果,如果你只需要拦截返回键 那么if(keyCode == KeyEvent.KEYCODE_BACK ) {

    }内部return true;就可以了,

    评论
    解决 无用
    打赏 举报
  • boy_nihao 2015-12-10 07:45

    if (keyCode == KeyEvent.KEYCODE_BACK ){

    //为什么重写了此方法返回键就无效了呢
    return true;
    }
    return true:if (keyCode == KeyEvent.KEYCODE_BACK )

    {

    return true;
    }
    这个方法里面你可以描述要按下返回键是要做的操作,比如退出当前页面:finish(), 你直接返回true 没有做任何操作 当然没有任何效果

    评论
    解决 无用
    打赏 举报
  • LloydFinch 2015-12-10 14:28

    因为返回键在super中有处理,需要自己处理一下

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题