The
The following picture show the
ActionBar
is located at the top of the Activity
that may display the Activity
title, navigation modes, and other interactive items.The following picture show the
ActionBar
of a typical Google Application with interactive items and a nagivation bar.
The application can also open a menu which shows actions via a popup menu. This
The following picture highlights the hardware button and the resulting menu as popup.
One of the reasons why the
OptionsMenu
is only available if the phone has a hardware "Options" button. Even if
the hardware button is available, it is recommended to use the ActionBar
, which is available for phones as of Android 4.0.The following picture highlights the hardware button and the resulting menu as popup.
ActionBar
is superior to the OptionsMenu
, if that it is clearly visible, while the OptionsMenu
is only shown on request and the user may not recognize that options are available.
The
In the
The
The
OptionsMenu
and the ActionBar
is filled by the onCreateOptionsMenu()
method of your Activity
.In the
onCreateOptionsMenu()
method you can create the menu entries. You can add menu entries via code or via the inflation of an existing XML resources.The
MenuInflator
class allows to inflate menu entries defined in XML to the menu. MenuInflator
can get accessed via the getMenuInflator()
method in your Activity
.The
onCreateOptionsMenu()
method is only called once. If you want to influence the menu later you have to use the onPrepareOptionsMenu()
method. onPrepareOptionsMenu()
is not called for entries in the ActionBar
for these entries you have to use the invalidateOptionsMenu()
method.
If a menu entry is selected then then
onOptionsItemSelected()
method is called. As parameter you receive the menu entry which was
selected so that you can react differently to different menu entries.
The
ActionBar
also shows an icon of your application. You can also add an action to this icon. If you select this icon the onOptionsItemSelected()
method will be called with the value android.R.id.home
. The recommendation is to return to the main Activity
in your program.// If home icon is clicked return to main Activity case android.R.id.home: Intent intent = new Intent(this, OverviewActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); break;
It is also possible to add tabs to the
ActionBar
which can be used for navigation. Typically Fragments
are used for this purpose. We demonstrate this in the Fragments
chapter.
You can also add a custom
View
to the ActionBar
. The following code snippet demonstrates that.@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); // add the custom view to the action bar actionBar.setCustomView(R.layout.actionbar_view); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); }
A contextual action mode activates a temporary
The contextual action mode is typically activated by selecting an item or by long clicking on it.
To implemented this, call the
ActionBar
that overlays the application ActionBar
for the duration of a particular sub-task.The contextual action mode is typically activated by selecting an item or by long clicking on it.
To implemented this, call the
startActionMode()
method on a View
or on your Activity
. This method gets an ActionMode.Callback
object which is responsible for the lifecycle of the contextual ActionBar
.
You can also assign a context menu to a
If possible the contextual action mode should be preferred over a context menu.
A context menu for a view is registered via the
View
. A context menu is also activated if the user "long presses" the view.If possible the contextual action mode should be preferred over a context menu.
A context menu for a view is registered via the
registerForContextMenu(view)
method. The onCreateContextMenu()
method is called every time a context menu is activated as the context
menu is discarded after its usage. The Android platform may also add
options to your View
, e.g. EditText
provides context options to select text, etc.
No comments:
Post a Comment