added in version 27.1.0
belongs to Maven artifact com.android.support:appcompat-v7:28.0.0-alpha1

ContextThemeWrapper

public class ContextThemeWrapper
extends ContextWrapper

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.support.v7.view.ContextThemeWrapper


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()
Resources getResources()
Object getSystemService(String name)
Resources.Theme getTheme()
int getThemeResId()

Returns the resource ID of the theme that is to be applied on top of the base context's theme.

void setTheme(int resid)

Protected methods

void attachBaseContext(Context newBase)
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 version 27.1.0
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 version 27.1.0
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 version 27.1.0
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 version 27.1.0
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

AssetManager getAssets ()

Returns
AssetManager

getResources

Resources getResources ()

Returns
Resources

getSystemService

Object getSystemService (String name)

Parameters
name String

Returns
Object

getTheme

Resources.Theme getTheme ()

Returns
Resources.Theme

getThemeResId

added in version 27.1.0
int getThemeResId ()

Returns the resource ID of the theme that is to be applied on top of the base context's theme.

Returns
int

setTheme

void setTheme (int resid)

Parameters
resid int

Protected methods

attachBaseContext

void attachBaseContext (Context newBase)

Parameters
newBase Context

onApplyThemeResource

added in version 27.1.0
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. Can override to change the default (simple) behavior. This method will not be called in multiple threads simultaneously.

Parameters
theme Resources.Theme: The Theme object being modified.

resid int: The theme style resource being applied to theme.

first boolean: Set to true if this is the first time a style is being applied to theme.