4

如何在 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;  
}  

单击菜单按钮如何打开上述上下文菜单?

4

1 回答 1

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).

对于设备的菜单按钮,您可以使用选项菜单

更新:

我从来没有尝试过,但你可以做类似的事情,

  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.. 
    
于 2012-05-16T09:12:42.937 回答