0

我正在处理以下代码:

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()

我使用的是安卓 2.3.3。

4

3 回答 3

3

对于 Activity,您应该覆盖onBackPressed按下后退按钮时调用的 Activity。 OnKeyListener将关键事件分派给视图。您会发现在 View 类中定义了 setOnKeyListener

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

于 2013-07-20T09:03:20.903 回答
2

只需覆盖onKeyDown()Activity的方法。那时您不必设置侦听器。

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

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

于 2013-07-20T09:05:32.217 回答
1

您可以使用onBackPressed()

@Override
public void onBackPressed() {
    showResults(0);
}
于 2013-07-20T09:20:57.517 回答