This class is a mediator for accomplishing a given task, for example sharing a file. It is
responsible for creating a view that performs an action that accomplishes the task. This class
also implements other functions such a performing a default action.

Note: This class is included in the support library for compatibility
with API level 4 and higher. If you're developing your app for API level 14 and higher
only, you should instead use the framework ActionProvider
class.

An ActionProvider can be
optionally specified for a MenuItem and in such a case it will be
responsible for
creating the action view that appears in the ActionBar as a substitute for
the menu item when the item is displayed as an action item. Also the provider is responsible for
performing a default action if a menu item placed on the overflow menu of the ActionBar is
selected and none of the menu item callbacks has handled the selection. For this case the
provider can also optionally provide a sub-menu for accomplishing the task at hand.

There are two ways for using an action provider for creating and handling of action views:

The system calls this method when the action provider is created.
You define the action provider's layout through the implementation of this
method. Use the context acquired
from the constructor to instantiate a LayoutInflater and
inflate your action provider's layout from an XML resource, then hook up
event listeners for the view's components. For example:

The system calls this method when the user selects a menu item from the action
overflow. The action provider should perform a default action for the
menu item. The system does not call this method if the menu item opens a submenu.

If your action provider presents a submenu through the
onPrepareSubMenu() callback, the submenu
appears even if the action provider is in the overflow menu.
Thus, the system never calls onPerformDefaultAction() if there is a submenu.

Note: An activity or a fragment that
implements onOptionsItemSelected() can override the action
provider's default behavior (unless it uses a submenu) by handling the
item-selected event and returning true. In this case, the
system does not call
onPerformDefaultAction().

onCreateActionView

onCreateActionView

Factory method called by the Android framework to create new action views.
This method returns a new action view for the given MenuItem.

If your ActionProvider implementation overrides the deprecated no-argument overload
onCreateActionView(), overriding this method for devices running API 16 or later
is recommended but optional. The default implementation calls onCreateActionView()
for compatibility with applications written for older platform versions.

onPrepareSubMenu

Called to prepare an associated submenu for the menu item backed by this ActionProvider.

if hasSubMenu() returns true, this method will be called when the menu item is
selected to prepare the submenu for presentation to the user. Apps may use this to create or
alter submenu content right before display.

Parameters

subMenu

SubMenu: Submenu that will be displayed

overridesItemVisibility

public boolean overridesItemVisibility ()

The result of this method determines whether or not isVisible() will be used
by the MenuItem this ActionProvider is bound to help determine its visibility.

Returns

boolean

true if this ActionProvider overrides the visibility of the MenuItem
it is bound to, false otherwise. The default implementation returns false.