点击密钥时启动活动

The*_*zer 9 android keylistener

我想在用户按空格键时启动一个活动.我的代码没有检测到单击空格键的时间.

@Override
public boolean dispatchKeyEvent(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.KEYCODE_SPACE) {
        Toast.makeText(MainActivity.this, "YOU CLICKED SPACE KEY",
                Toast.LENGTH_LONG).show();
        return true;
    }
    Toast.makeText(MainActivity.this, "Didnt work", Toast.LENGTH_SHORT)
            .show();
    return super.dispatchKeyEvent(e);
};
Run Code Online (Sandbox Code Playgroud)

}

dav*_*ino 8

您可以将侦听器设置为View 具有当前焦点的侦听器,也可以dispatchKeyEvent在您的侦听中使用Activity,如本答案中所示.

两者都有效.


回答你的评论:如果你已经关注了我的链接,那么你Activity.dispatchKeyEvent(KeyEvent)现在可能已经实现了.:-)

代码没有注册任何键我按,但当我按后退键它为我祝酒"没有工作"

你碰巧在使用模拟器吗?我问这是因为最新的SDK似乎在模拟器键盘上有一些问题.特殊键(DPAD,HOME,BACK等)可以工作,但屏幕上的QWERTY键盘不会记录任何按键.我的笔记本电脑中的物理键盘也不会注册任何印刷机.

不要问我为什么.

我说这是因为本周我在链接中发布了答案,并且工作正常.更改是我今天早上将Android SDK更新为R20/JB,所以我想这可能是一个因素.

但是,它只适用真实设备.我刚刚将一个物理键盘连接到我的平板电脑(P7510/Honeycomb 3.2),它听空间按下就好了.

万一你还在怀疑,这里有证据:--)

在此输入图像描述