在菜单项上点击创建上下文菜单

问题描述:

我处于奇怪的状况,我试图在各处搜索,但是我没有找到任何有用的东西。可能是我跟随糟糕的设计。但这里是我的情况:在菜单项上点击创建上下文菜单

我在我的应用程序中有AppBar,我在我们通常所做的应用程序栏上添加了ActionButton。现在我想在用户点击应用栏的任何一个动作按钮时显示上下文菜单。

例如:如果我有应用程序栏上的设置按钮,并且用户单击该按钮,那么我想显示具有多个选项的上下文菜单。 我知道如何创建上下文菜单和处理上下文菜单项点击,但我不知道如何从操作按钮点击控制导致显示ContextMenu

这里是我的代码:

//inflating context menu which will display when user clicks app bar button example like setting 

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.context_menu_sort, menu); 
    } 

//handling context menu item clicks 
    @Override 
    public boolean onContextItemSelected(MenuItem item) { 
     return super.onContextItemSelected(item); 
    } 

但我不知道如何处理应用程序栏按钮,点击它可以显示上下文菜单:

//Below code is to handle app bar item clicks 

    public boolean onOptionsItemSelected(MenuItem item) { 
     int id = item.getItemId(); 
     if (mDrawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 

     //handling the menu clicks on menu.xml 
     switch (id){ 
//on below action_add click i want to display context menu 
      case R.id.action_add: 
//not sure what to code here 
       break; 
} 

感谢您的帮助

如果我正在理解你,你想展示一个子菜单吗? 然后您需要在您的R.menu.context_menu_sort中添加menu标签。

像这样:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/file" 
      android:title="@string/file" > 
     <!-- "file" submenu --> 
     <menu> 
      <item android:id="@+id/create_new" 
        android:title="@string/create_new" /> 
      <item android:id="@+id/open" 
        android:title="@string/open" /> 
     </menu> 
    </item> 
</menu> 

欲了解更多信息请参阅https://developer.android.com/guide/topics/ui/menus.html