如何使用硬菜单按钮开始新的 Activity?

How to start new Activity using hard Menu button?

这是代码示例,但它不起作用。 我在 MainActivity

中添加了这个方法
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    Intent intent = new Intent(this, PrefActivity.class);
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        startActivity(intent);
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_MENU) {
Intent intent = new Intent(getApplicationContext(), PrefActivity.class);
    startActivity(intent);
    return true;
}
return super.onKeyLongPress(keyCode, event);
}

试试吧!

如果你只是想点击按钮而不是按住它,你可以使用onKeyUp

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_MENU:
            startActivity(new Intent(this, LoginActivity.class));
            return true;
    }
    return super.onKeyUp(keyCode, event);
}

如果您想处理 onKeyLongPress,那么您可以在 onKeyDown and onKeyLongPress

阅读更多内容

它不起作用的原因是您的事件正在被 onKeyDown 消耗,它会不断触发,直到您松开键并且永远不会调用 onKeyLongPress