Apply a theme to an activity in Android? Apply a theme to an activity in Android? android android

Apply a theme to an activity in Android?


You can apply a theme to any activity by including android:theme inside <activity> inside manifest file.

For example:

  1. <activity android:theme="@android:style/Theme.Dialog">
  2. <activity android:theme="@style/CustomTheme">

And if you want to set theme programatically then use setTheme() before calling setContentView() and super.onCreate() method inside onCreate() method.


To set it programmatically in Activity.java:

public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setTheme(R.style.MyTheme); // (for Custom theme)  setTheme(android.R.style.Theme_Holo); // (for Android Built In Theme)  this.setContentView(R.layout.myactivity);

To set in Application scope in Manifest.xml (all activities):

 <application    android:theme="@android:style/Theme.Holo"    android:theme="@style/MyTheme">

To set in Activity scope in Manifest.xml (single activity):

  <activity    android:theme="@android:style/Theme.Holo"    android:theme="@style/MyTheme">

To build a custom theme, you will have to declare theme in themes.xml file, and set styles in styles.xml file.


Before you call setContentView(), call setTheme(android.R.style...) and just replace the ... with the theme that you want(Theme, Theme_NoTitleBar, etc.).

Or if your theme is a custom theme, then replace the entire thing, so you get setTheme(yourThemesResouceId)