我想屏蔽设备的菜单按钮按下事件。
到目前为止,我已经使用了这段代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
return (keyCode == KeyEvent.KEYCODE_MENU || super.onKeyDown(keyCode, event));
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return (keyCode == KeyEvent.KEYCODE_MENU || super.onKeyUp(keyCode, event));
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
int action = event.getAction();
boolean isDown = action == 0;
if (keyCode == KeyEvent.KEYCODE_MENU) {
return isDown ? this.onKeyDown(keyCode, event) : this.onKeyUp(keyCode, event);
}
return super.dispatchKeyEvent(event);
}
当我按下菜单按钮方法onKeyDown
时,onKeyUp
,dispatchKeyEvent
不会被调用。我看到了菜单列表。
还有另一种阻止菜单按钮的方法吗?
PS:我使用appcompat-v7:22
答案 0 :(得分:1)
不幸的是,AppCompat v22.2.1再次打破了onKeyDown和onKeyUp事件。我刚刚更新了v22.2.1。
这是问题。
答案 1 :(得分:-1)
答案是:
MenuItem menuItem = menu.findItem(R.id.action_share);
(注意:id是菜单项)
menuItem.setEnabled(假);