/******************************************************************************************************************* * * ******************************************************************************************************************/ public boolean onContextItemSelected (final @Nonnull MenuItem item) { final AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); try { final ActionProvider actionProvider = getItem(info.position).as(ActionProvider); final Action[] actions = actionProvider.getActions().toArray(new Action[0]); final int menuIndex = item.getItemId(); actions[menuIndex].actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "actionPerformed")); } catch (AsException e) { return false; // no ActionProvider } return true; } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onCreateContextMenu (final @Nonnull ContextMenu menu, final @Nonnull View view, final @Nonnull ContextMenuInfo menuInfo) { final AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo; try { final ActionProvider actionProvider = getItem(info.position).as(ActionProvider); int id = 0; for (final Action action : actionProvider.getActions()) { final MenuItem menuItem = menu.add(0, id++, 0, (String)action.getValue(Action.NAME)); menuItem.setEnabled(action.isEnabled()); } } catch (AsException e) { // ok, no ActionProvider } }