这是我到目前为止的代码...
@Override
public boolean onKeyDown(int keycode, KeyEvent event ) {
if(keycode == KeyEvent.KEYCODE_MENU)
{
// need to open the menu from here.
//registerForContextMenu(); ???
//openContextMenu(); ???
}
return super.onKeyDown(keycode,event);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, "Action 1");
menu.add(0, v.getId(), 0, "Action 2");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Action 1"){function1(item.getItemId());}
else if(item.getTitle()=="Action 2"){function2(item.getItemId());}
else {return false;}
return true;
}
public void function1(int id){
Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show();
}
public void function2(int id){
Toast.makeText(this, "function 2 called", Toast.LENGTH_SHORT).show();
}
但是我真的不知道按下菜单键后如何打开这个菜单。
有什么建议吗?
谢谢!
编辑,需要菜单如下所示:
谢谢,大部分工作,只有菜单看起来像标准选项菜单,但我真的需要它像上下文菜单,见上面。有什么办法让它看起来像这样吗?
最佳答案
上下文菜单用于长按小部件。将 onCreateContextMenu()
更改为 onCreateOptionsMenu()
并将 onContextItemSelected()
更改为 onOptionsItemSelected()
(并摆脱onKeyDown()
) 以通过 MENU 按钮触发选项菜单。
关于java - 如何从菜单按键调用上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998052/