org.solovyev.android.menu
Class ListActivityMenu<M,MI>

java.lang.Object
  extended by org.solovyev.android.menu.ListActivityMenu<M,MI>
All Implemented Interfaces:
ActivityMenu<M,MI>

public class ListActivityMenu<M,MI>
extends Object
implements ActivityMenu<M,MI>

Activity menu implementation. Allows to use filter in order to change displayed menu items.

Currently there are two strategies of creating menu: 1. From Android resource file 2. Programatically

In spite of the strategies menu can be filtered with JPredicate. Note: different strategies are used for creating menu with or without filter.


Method Summary
 AMenuItem<MI> findMenuItemById(int menuItemId)
           
static
<M,MI,E extends Enum & LabeledMenuItem<MI>>
ActivityMenu<M,MI>
fromEnum(Class<E> enumMenuClass, MenuHelper<M,MI> menuHelper)
          Creates simple menu from enum class.
static
<M,MI,E extends Enum & LabeledMenuItem<MI>>
ActivityMenu<M,MI>
fromEnum(Class<E> enumMenuClass, MenuHelper<M,MI> menuHelper, org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
          Creates simple menu from enum class which can be filtered before displaying on screen.
static
<M,MI> ActivityMenu<M,MI>
fromList(List<? extends LabeledMenuItem<MI>> menuItems, MenuHelper<M,MI> menuHelper)
          Creates simple menu from list of menu items.
static
<M,MI> ActivityMenu<M,MI>
fromList(List<? extends LabeledMenuItem<MI>> menuItems, MenuHelper<M,MI> menuHelper, org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
          Creates simple menu from list of menu items which can be filtered before displaying on screen.
static
<M,MI,E extends Enum & IdentifiableMenuItem<MI>>
ActivityMenu<M,MI>
fromResource(int menuResId, Class<? extends E> enumMenuClass, MenuHelper<M,MI> menuHelper)
          Creates simple menu from Android resource.
static
<M,MI,E extends Enum & IdentifiableMenuItem<MI>>
ActivityMenu<M,MI>
fromResource(int menuResId, Class<? extends E> enumMenuClass, MenuHelper<M,MI> menuHelper, org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
          Creates simple menu from Android resource which can be filtered before displaying on screen.
static
<M,MI> ListActivityMenu<M,MI>
fromResource(int menuResId, List<? extends IdentifiableMenuItem<MI>> menuItems, MenuHelper<M,MI> menuHelper)
          Creates simple menu from Android resource.
static
<M,MI> ActivityMenu<M,MI>
fromResource(int menuResId, List<? extends IdentifiableMenuItem<MI>> menuItems, MenuHelper<M,MI> menuHelper, org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
          Creates simple menu from Android resource which can be filtered before displaying on screen.
 boolean onCreateOptionsMenu(android.app.Activity activity, M menu)
           
 boolean onOptionsItemSelected(android.app.Activity activity, MI item)
           
 boolean onPrepareOptionsMenu(android.app.Activity activity, M menu)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

fromList

@Nonnull
public static <M,MI> ActivityMenu<M,MI> fromList(@Nonnull
                                                         List<? extends LabeledMenuItem<MI>> menuItems,
                                                         @Nonnull
                                                         MenuHelper<M,MI> menuHelper)
Creates simple menu from list of menu items. Note: you need to add method calls of ActivityMenu in your Activity or Fragment

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuItems - menu items
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

fromList

@Nonnull
public static <M,MI> ActivityMenu<M,MI> fromList(@Nonnull
                                                         List<? extends LabeledMenuItem<MI>> menuItems,
                                                         @Nonnull
                                                         MenuHelper<M,MI> menuHelper,
                                                         @Nonnull
                                                         org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
Creates simple menu from list of menu items which can be filtered before displaying on screen.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment Note 2: filter is applied only in ListActivityMenu#onPrepareOptionsMenu(android.app.Activity, M) method. ListActivityMenu#onCreateOptionsMenu(android.app.Activity, M) does nothing in that case. Note 3: filter should be persistent, i.e. should always return same values for same objects (as filtering might be called at any point in time)

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuItems - menu items
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

fromEnum

@Nonnull
public static <M,MI,E extends Enum & LabeledMenuItem<MI>> ActivityMenu<M,MI> fromEnum(@Nonnull
                                                                                             Class<E> enumMenuClass,
                                                                                             @Nonnull
                                                                                             MenuHelper<M,MI> menuHelper,
                                                                                             @Nonnull
                                                                                             org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
Creates simple menu from enum class which can be filtered before displaying on screen.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment Note 2: filter is applied only in ListActivityMenu#onPrepareOptionsMenu(android.app.Activity, M) method. ListActivityMenu#onCreateOptionsMenu(android.app.Activity, M) does nothing in that case. Note 3: filter should be persistent, i.e. should always return same values for same objects (as filtering might be called at any point in time)

Type Parameters:
M - menu type
MI - menu item type
Parameters:
enumMenuClass - enum class representing menu. Should implement LabeledMenuItem interface
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

fromEnum

@Nonnull
public static <M,MI,E extends Enum & LabeledMenuItem<MI>> ActivityMenu<M,MI> fromEnum(@Nonnull
                                                                                             Class<E> enumMenuClass,
                                                                                             @Nonnull
                                                                                             MenuHelper<M,MI> menuHelper)
Creates simple menu from enum class. Note: you need to add method calls of ActivityMenu in your Activity or Fragment

Type Parameters:
M - menu type
MI - menu item type
Parameters:
enumMenuClass - enum class representing menu. Should implement LabeledMenuItem interface
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

fromResource

@Nonnull
public static <M,MI> ActivityMenu<M,MI> fromResource(int menuResId,
                                                             @Nonnull
                                                             List<? extends IdentifiableMenuItem<MI>> menuItems,
                                                             @Nonnull
                                                             MenuHelper<M,MI> menuHelper,
                                                             @Nonnull
                                                             org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
Creates simple menu from Android resource which can be filtered before displaying on screen.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment Note 2: filter is applied only in ListActivityMenu#onPrepareOptionsMenu(android.app.Activity, M) method. ListActivityMenu#onCreateOptionsMenu(android.app.Activity, M) does nothing in that case. Note 3: filter should be persistent, i.e. should always return same values for same objects (as filtering might be called at any point in time)

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuResId - id of android resource menu
menuItems - menu items which are bound by identifiers to menu items from resource and handle clicks on them
menuHelper - menu helper. See AndroidMenuHelper
filter - applied filter
Returns:
constructed menu

fromResource

@Nonnull
public static <M,MI> ListActivityMenu<M,MI> fromResource(int menuResId,
                                                                 @Nonnull
                                                                 List<? extends IdentifiableMenuItem<MI>> menuItems,
                                                                 @Nonnull
                                                                 MenuHelper<M,MI> menuHelper)
Creates simple menu from Android resource.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuResId - id of android resource menu
menuItems - menu items which are bound by identifiers to menu items from resource and handle clicks on them
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

fromResource

@Nonnull
public static <M,MI,E extends Enum & IdentifiableMenuItem<MI>> ActivityMenu<M,MI> fromResource(int menuResId,
                                                                                                      @Nonnull
                                                                                                      Class<? extends E> enumMenuClass,
                                                                                                      @Nonnull
                                                                                                      MenuHelper<M,MI> menuHelper,
                                                                                                      @Nonnull
                                                                                                      org.solovyev.common.JPredicate<AMenuItem<MI>> filter)
Creates simple menu from Android resource which can be filtered before displaying on screen.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment Note 2: filter is applied only in ListActivityMenu#onPrepareOptionsMenu(android.app.Activity, M) method. ListActivityMenu#onCreateOptionsMenu(android.app.Activity, M) does nothing in that case. Note 3: filter should be persistent, i.e. should always return same values for same objects (as filtering might be called at any point in time)

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuResId - id of android resource menu
enumMenuClass - enum class representing menu. Should implement IdentifiableMenuItem interface in order to handle clicks
menuHelper - menu helper. See AndroidMenuHelper
filter - applied filter
Returns:
constructed menu

fromResource

@Nonnull
public static <M,MI,E extends Enum & IdentifiableMenuItem<MI>> ActivityMenu<M,MI> fromResource(int menuResId,
                                                                                                      @Nonnull
                                                                                                      Class<? extends E> enumMenuClass,
                                                                                                      @Nonnull
                                                                                                      MenuHelper<M,MI> menuHelper)
Creates simple menu from Android resource.

Note: you need to add method calls of ActivityMenu in your Activity or Fragment

Type Parameters:
M - menu type
MI - menu item type
Parameters:
menuResId - id of android resource menu
enumMenuClass - enum class representing menu. Should implement IdentifiableMenuItem interface in order to handle clicks
menuHelper - menu helper. See AndroidMenuHelper
Returns:
constructed menu

onCreateOptionsMenu

public boolean onCreateOptionsMenu(@Nonnull
                                   android.app.Activity activity,
                                   @Nonnull
                                   M menu)
Specified by:
onCreateOptionsMenu in interface ActivityMenu<M,MI>

onPrepareOptionsMenu

public boolean onPrepareOptionsMenu(@Nonnull
                                    android.app.Activity activity,
                                    @Nonnull
                                    M menu)
Specified by:
onPrepareOptionsMenu in interface ActivityMenu<M,MI>

onOptionsItemSelected

public boolean onOptionsItemSelected(@Nonnull
                                     android.app.Activity activity,
                                     @Nonnull
                                     MI item)
Specified by:
onOptionsItemSelected in interface ActivityMenu<M,MI>

findMenuItemById

@Nullable
public AMenuItem<MI> findMenuItemById(int menuItemId)


Copyright © 2014 se.solovyev. All Rights Reserved.