单击android中的Menu按钮打开上下文菜单

时间:2012-05-16 09:05:57

标签: android menu contextmenu

如何在Android设备上单击菜单按钮打开上下文菜单?任何人都可以帮助我..

@Override  
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle("Select");  
    menu.add(0, v.getId(), 0, "Gmail");  
    menu.add(0, v.getId(), 0, "Facebook");
    menu.add(0, v.getId(), 0, "Twitter");  
}  

@Override  
public boolean onContextItemSelected(MenuItem item) {  
    if(item.getTitle()=="Gmail"){function1(item.getItemId());}  
    else if(item.getTitle()=="Facebook"){function2(item.getItemId());}  
    else if(item.getTitle()=="Twitter"){function3(item.getItemId());}  

    return true;  
}  

如何点击菜单按钮打开上面的上下文菜单?

1 个答案:

答案 0 :(得分:4)

Are you sure you want to open context Menu on Click of Menu button?

因为上下文菜单适用于特定视图

上下文菜单提供影响UI中特定项目或上下文框架的操作。您可以为任何视图提供上下文菜单,但它们通常用于ListView,GridView或其他视图集合中的项目,用户可以在其中对每个项目执行直接操作。

要在长按一下显示上下文菜单,大多数客户都希望拨打registerForContextMenu(View)并覆盖onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)

对于设备的菜单按钮,您可以使用Options Menu

<强>更新

我从不尝试过,但你可以做点什么,

  1. 处理菜单按钮按下设备事件,

    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
             // ........
         }
        return true;
     }
    
  2. 将线放入其中,

    this.openContextMenu(view); // Here view is reference for which you have a register contect menu..