2016-12-29 7 views
-2

Я в странной ситуации, и я попытался найти везде, но я не нашел ничего полезного. Возможно, я следую плохому дизайну. Но вот моя ситуация:Создать контекстное меню по пункту меню нажмите

У меня есть 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; 
} 

Спасибо за вашу помощь

ответ

0

Если Я понимаю вас правильно, вы хотите показать подменю? Затем вам нужно добавить тэг menu в ваш R.menu.context_menu_sort.

Как это:

<?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

Смежные вопросы