Most visited

Recently visited

Added in API level 1

ContextThemeWrapper

public class ContextThemeWrapper
extends ContextWrapper

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.view.ContextThemeWrapper
Known Direct Subclasses
Known Indirect Subclasses


A context wrapper that allows you to modify or replace the theme of the wrapped context.

Summary

Inherited constants

From class android.content.Context

Public constructors

ContextThemeWrapper()

Creates a new context wrapper with no theme and no base context.

ContextThemeWrapper(Context base, int themeResId)

Creates a new context wrapper with the specified theme.

ContextThemeWrapper(Context base, Resources.Theme theme)

Creates a new context wrapper with the specified theme.

Public methods

void applyOverrideConfiguration(Configuration overrideConfiguration)

Call to set an "override configuration" on this context -- this is a configuration that replies one or more values of the standard configuration that is applied to the context.

AssetManager getAssets()

Returns an AssetManager instance for the application's package.

Resources getResources()

Returns a Resources instance for the application's package.

Object getSystemService(String name)

Return the handle to a system-level service by name.

Resources.Theme getTheme()

Return the Theme object associated with this Context.

void setTheme(int resid)

Set the base theme for this context.

Protected methods

void attachBaseContext(Context newBase)

Set the base context for this ContextWrapper.

void onApplyThemeResource(Resources.Theme theme, int resId, boolean first)

Called by setTheme(int) and getTheme() to apply a theme resource to the current Theme object.

Inherited methods

From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object

Public constructors

ContextThemeWrapper

Added in API level 1
ContextThemeWrapper ()

Creates a new context wrapper with no theme and no base context.

Note: A base context must be attached using attachBaseContext(Context) before calling any other method on the newly constructed context wrapper.

ContextThemeWrapper

Added in API level 1
ContextThemeWrapper (Context base, 
                int themeResId)

Creates a new context wrapper with the specified theme.

The specified theme will be applied on top of the base context's theme. Any attributes not explicitly defined in the theme identified by themeResId will retain their original values.

Parameters
base Context: the base context
themeResId int: the resource ID of the theme to be applied on top of the base context's theme

ContextThemeWrapper

Added in API level 23
ContextThemeWrapper (Context base, 
                Resources.Theme theme)

Creates a new context wrapper with the specified theme.

Unlike ContextThemeWrapper(Context, int), the theme passed to this constructor will completely replace the base context's theme.

Parameters
base Context: the base context
theme Resources.Theme: the theme against which resources should be inflated

Public methods

applyOverrideConfiguration

Added in API level 17
void applyOverrideConfiguration (Configuration overrideConfiguration)

Call to set an "override configuration" on this context -- this is a configuration that replies one or more values of the standard configuration that is applied to the context. See createConfigurationContext(Configuration) for more information.

This method can only be called once, and must be called before any calls to getResources() or getAssets() are made.

Parameters
overrideConfiguration Configuration

getAssets

Added in API level 1
AssetManager getAssets ()

Returns an AssetManager instance for the application's package.

Note: Implementations of this method should return an AssetManager instance that is consistent with the Resources instance returned by getResources(). For example, they should share the same Configuration object.

Returns
AssetManager an AssetManager instance for the application's package

getResources

Added in API level 1
Resources getResources ()

Returns a Resources instance for the application's package.

Note: Implementations of this method should return a Resources instance that is consistent with the AssetManager instance returned by getAssets(). For example, they should share the same Configuration object.

Returns
Resources a Resources instance for the application's package

getSystemService

Added in API level 1
Object getSystemService (String name)

Return the handle to a system-level service by name. The class of the returned object varies by the requested name. Currently available names are:

WINDOW_SERVICE ("window")
The top-level window manager in which you can place custom windows. The returned object is a WindowManager.
LAYOUT_INFLATER_SERVICE ("layout_inflater")
A LayoutInflater for inflating layout resources in this context.
ACTIVITY_SERVICE ("activity")
A ActivityManager for interacting with the global activity state of the system.
POWER_SERVICE ("power")
A PowerManager for controlling power management.
ALARM_SERVICE ("alarm")
A AlarmManager for receiving intents at the time of your choosing.
NOTIFICATION_SERVICE ("notification")
A NotificationManager for informing the user of background events.
KEYGUARD_SERVICE ("keyguard")
A KeyguardManager for controlling keyguard.
LOCATION_SERVICE ("location")
A LocationManager for controlling location (e.g., GPS) updates.
SEARCH_SERVICE ("search")
A SearchManager for handling search.
VIBRATOR_SERVICE ("vibrator")
A Vibrator for interacting with the vibrator hardware.
CONNECTIVITY_SERVICE ("connection")
A ConnectivityManager for handling management of network connections.
WIFI_SERVICE ("wifi")
A WifiManager for management of Wi-Fi connectivity.
WIFI_P2P_SERVICE ("wifip2p")
A WifiP2pManager for management of Wi-Fi Direct connectivity.
INPUT_METHOD_SERVICE ("input_method")
An InputMethodManager for management of input methods.
UI_MODE_SERVICE ("uimode")
An UiModeManager for controlling UI modes.
DOWNLOAD_SERVICE ("download")
A DownloadManager for requesting HTTP downloads
BATTERY_SERVICE ("batterymanager")
A BatteryManager for managing battery state
JOB_SCHEDULER_SERVICE ("taskmanager")
A JobScheduler for managing scheduled tasks
NETWORK_STATS_SERVICE ("netstats")
A NetworkStatsManager for querying network usage statistics.
HARDWARE_PROPERTIES_SERVICE ("hardware_properties")
A HardwarePropertiesManager for accessing hardware properties.

Note: System services obtained via this API may be closely associated with the Context in which they are obtained from. In general, do not share the service objects between various different contexts (Activities, Applications, Services, Providers, etc.)

Parameters
name String: The name of the desired service.
Returns
Object The service or null if the name does not exist.

getTheme

Added in API level 1
Resources.Theme getTheme ()

Return the Theme object associated with this Context.

Returns
Resources.Theme

setTheme

Added in API level 1
void setTheme (int resid)

Set the base theme for this context. Note that this should be called before any views are instantiated in the Context (for example before calling setContentView(View) or inflate(int, ViewGroup)).

Parameters
resid int: The style resource describing the theme.

Protected methods

attachBaseContext

Added in API level 1
void attachBaseContext (Context newBase)

Set the base context for this ContextWrapper. All calls will then be delegated to the base context. Throws IllegalStateException if a base context has already been set.

Parameters
newBase Context: The new base context for this wrapper.

onApplyThemeResource

Added in API level 1
void onApplyThemeResource (Resources.Theme theme, 
                int resId, 
                boolean first)

Called by setTheme(int) and getTheme() to apply a theme resource to the current Theme object. May be overridden to change the default (simple) behavior. This method will not be called in multiple threads simultaneously.

Parameters
theme Resources.Theme: the theme being modified
resId int: the style resource being applied to theme
first boolean: true if this is the first time a style is being applied to theme

Hooray!