处理后退按钮

问题描述 投票:0回答:3

我正在处理以下代码:

private class HandleBackButton implements OnKeyListener
    {

        @Override
        public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
            // TODO Auto-generated method stub

            if(arg1==KeyEvent.KEYCODE_BACK)
            {
                showResults(0);
            }
            return true;
        }

    }

我对android很新,我的目的是在单击后退按钮时操作上面的代码。用户可以随时单击后退按钮。但是,如何将此侦听器设置为Activity?我找不到像this.setOnKeyListener()这样的东西。

我使用的是Android 2.3.3。

java android eclipse keyevent
3个回答
2
投票

只需覆盖Activity的onKeyDown()方法即可。您不必再设置监听器。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {
            showResults(0);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

如果您的api级别> = 5,您也可以选择覆盖onBackPressed()


3
投票

对于Activity,您应该覆盖按下后退按钮时调用的onBackPressedOnKeyListener将关键事件发送到视图。您可以在View类中找到setOnKeyListener

将硬件键事件调度到此视图时要调用的回调的接口定义。在将键事件提供给视图之前将调用回调。这仅适用于硬件键盘;软件输入方法没有义务触发此监听器。


1
投票

你可以使用onBackPressed()

@Override
public void onBackPressed() {
    showResults(0);
}
© www.soinside.com 2019 - 2024. All rights reserved.