diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/app/ActionBar.java | 13 | ||||
-rw-r--r-- | core/java/android/app/Activity.java | 14 |
2 files changed, 25 insertions, 2 deletions
diff --git a/core/java/android/app/ActionBar.java b/core/java/android/app/ActionBar.java index a217867..7acaec8 100644 --- a/core/java/android/app/ActionBar.java +++ b/core/java/android/app/ActionBar.java @@ -627,7 +627,18 @@ public abstract class ActionBar { * * @param enabled true to enable the home button, false to disable the home button. */ - public abstract void setHomeButtonEnabled(boolean enabled); + public void setHomeButtonEnabled(boolean enabled) { } + + /** + * Returns a {@link Context} with an appropriate theme for creating views that + * will appear in the action bar. If you are inflating or instantiating custom views + * that will appear in an action bar, you should use the Context returned by this method. + * (This includes adapters used for list navigation mode.) + * This will ensure that views contrast properly against the action bar. + * + * @return A themed Context for creating views + */ + public Context getThemedContext() { return null; } /** * Listener interface for ActionBar navigation events. diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 8d03ac7..c6c4025 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -32,6 +32,7 @@ import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; +import android.content.res.Resources.Theme; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -54,6 +55,7 @@ import android.util.AttributeSet; import android.util.EventLog; import android.util.Log; import android.util.SparseArray; +import android.util.TypedValue; import android.view.ActionMode; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; @@ -672,6 +674,7 @@ public class Activity extends ContextThemeWrapper /*package*/ int mConfigChangeFlags; /*package*/ Configuration mCurrentConfig; private SearchManager mSearchManager; + private MenuInflater mMenuInflater; static final class NonConfigurationInstances { Object activity; @@ -3083,7 +3086,16 @@ public class Activity extends ContextThemeWrapper * Returns a {@link MenuInflater} with this context. */ public MenuInflater getMenuInflater() { - return new MenuInflater(this); + // Make sure that action views can get an appropriate theme. + if (mMenuInflater == null) { + initActionBar(); + if (mActionBar != null) { + mMenuInflater = new MenuInflater(mActionBar.getThemedContext()); + } else { + mMenuInflater = new MenuInflater(this); + } + } + return mMenuInflater; } @Override |