Skip to content

Instantly share code, notes, and snippets.

@basilbeltran
Last active August 29, 2015 14:26
Show Gist options
  • Save basilbeltran/6258c90dcea35daf08af to your computer and use it in GitHub Desktop.
Save basilbeltran/6258c90dcea35daf08af to your computer and use it in GitHub Desktop.
ActionBar Options
extends ListFragment {
private boolean mSubtitleVisible; //instance vbl retained
onCreate...
setHasOptionsMenu(true); //Fragment will be implementing options menu callbacks on behalf of the activity.
setRetainInstance(true); //retain
mSubtitleVisible = false; //retain is for preserving menu state through rotation event
@TargetApi(11) // if ( minSdk < API < 11) !Lint; you have accounted for VERSION_CODE and under
onCreateView...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
if (mSubtitleVisible) { getActivity().getActionBar().setSubtitle(R.string.subtitle); // getActionBar appears in API 11
onCreateOptionsMenu...
inflater.inflate(R.menu.fragment_crime_list, menu); // ..../res/menu-v11/ contains xml noted below
MenuItem showSubtitle = menu.findItem(R.id.menu_item_show_subtitle);
if (mSubtitleVisible && showSubtitle != null) { // ROTATION
showSubtitle.setTitle(R.string.hide_subtitle);
@TargetApi(11)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_new_crime:
startIntent // for a new data object maybe
case R.id.menu_item_show_subtitle: // dynamically change menu to "hide" or "show" submenu
if (getActivity().getActionBar().getSubtitle() == null) {
getActivity().getActionBar().setSubtitle(R.string.subtitle);
mSubtitleVisible = true;
item.setTitle(R.string.hide_subtitle);
} else {
getActivity().getActionBar().setSubtitle(null);
mSubtitleVisible = false;
item.setTitle(R.string.show_subtitle);
}
return true;
default:
return super.onOptionsItemSelected(item);
========================================================================================================================
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/new_object"
android:id="@+id/menu_item_new_object"
android:icon="@android:drawable/ic_menu_add"
android:showAsAction="ifRoom|withText"
tools:ignore="AppCompatResource"/>
<item android:id="@+id/menu_item_show_subtitle"
android:title="@string/show_subtitle"
android:showAsAction="ifRoom"
tools:ignore="AppCompatResource"/>
</menu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment