* Copyright (C) 2011 The Android Open Source Project
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
An ActionProvider can be optionally specified for a
and in such a
case it will be responsible for creating the action view that appears in the
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:
directly by calling
<item android:id="@+id/my_menu_item" android:title="Title" android:icon="@drawable/my_menu_item_icon" android:showAsAction="ifRoom" android:actionProviderClass="foo.bar.SomeActionProvider" />
For the case of an action provider placed in a menu item not shown as an action this method is invoked if previous callbacks for processing menu selection has handled the event.
A menu item selection is processed in the following order:
The default implementation does not perform any action and returns false.
Associated submenus will be shown when an action view is not. This
provider instance will receive a call to
after the call to
and before a submenu is
displayed to the user.
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.
subMenuSubmenu that will be displayed