如何使用硬菜单按钮启动新活动?

时间:2016-03-18 08:12:11

标签: android android-activity android-button android-menu

这是代码的一个例子,它不起作用。 我在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);
}

2 个答案:

答案 0 :(得分:0)

如果您只想单击按钮而不按住它,则可以使用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之前,该事件一直被触发。

答案 1 :(得分:-3)

@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);
}

试试吧!