2929 * be reused if possible when items change.
3030 */
3131public abstract class BaseMenuPresenter implements MenuPresenter {
32+ protected Context mSystemContext ;
3233 protected Context mContext ;
3334 protected MenuBuilder mMenu ;
35+ protected LayoutInflater mSystemInflater ;
3436 protected LayoutInflater mInflater ;
3537 private Callback mCallback ;
3638
@@ -44,10 +46,13 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
4446 /**
4547 * Construct a new BaseMenuPresenter.
4648 *
49+ * @param context Context for generating system-supplied views
4750 * @param menuLayoutRes Layout resource ID for the menu container view
4851 * @param itemLayoutRes Layout resource ID for a single item view
4952 */
50- public BaseMenuPresenter (int menuLayoutRes , int itemLayoutRes ) {
53+ public BaseMenuPresenter (Context context , int menuLayoutRes , int itemLayoutRes ) {
54+ mSystemContext = context ;
55+ mSystemInflater = LayoutInflater .from (context );
5156 mMenuLayoutRes = menuLayoutRes ;
5257 mItemLayoutRes = itemLayoutRes ;
5358 }
@@ -62,7 +67,7 @@ public void initForMenu(Context context, MenuBuilder menu) {
6267 @ Override
6368 public MenuView getMenuView (ViewGroup root ) {
6469 if (mMenuView == null ) {
65- mMenuView = (MenuView ) mInflater .inflate (mMenuLayoutRes , root , false );
70+ mMenuView = (MenuView ) mSystemInflater .inflate (mMenuLayoutRes , root , false );
6671 mMenuView .initialize (mMenu );
6772 updateMenuView (true );
6873 }
@@ -138,7 +143,7 @@ public void setCallback(Callback cb) {
138143 * @return The new item view
139144 */
140145 public MenuView .ItemView createItemView (ViewGroup parent ) {
141- return (MenuView .ItemView ) mInflater .inflate (mItemLayoutRes , parent , false );
146+ return (MenuView .ItemView ) mSystemInflater .inflate (mItemLayoutRes , parent , false );
142147 }
143148
144149 /**
0 commit comments