I know how to apply a theme to a whole application, but where would I go to apply a theme to just a single activity?
3 Answers
You can apply a theme to any activity by including android:theme
inside <activity>
inside manifest file.
For example:
<activity android:theme="@android:style/Theme.Dialog">
<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.

- 127,700
- 71
- 241
- 295
-
1What about disable theme? on a single activity – Yousha Aleayoub Sep 21 '15 at 10:17
-
@Yousha Aleayoub: did you try just setting another theme? – Yannick Oct 25 '15 at 10:44
-
No, but i just want to disable/remove the theme and make it basic... :) – Yousha Aleayoub Oct 26 '15 at 12:36
-
1and in activity xml use `tools:context= ".YourAtivityName"` in the root – Faisal Naseer Jul 27 '17 at 07:36
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.
-
1
-
2
-
@Vineet Kaushik, `android:theme="@android:style/Theme.Holo"` is the syntax for adding an Android built-in theme. `android:theme="@style/MyTheme"` is the syntax for adding a custom theme described in your `styles.xml` file. In your actual `AndroidManifest.xml` file you would only use one or the other for each section, not both. – Soren Stoutner Jun 09 '16 at 17:21
-
1@Yousha Aleayoub, to disable the theme, create a blank theme in `styles.xml` and then use the syntax `android:theme=@style/MyBlankTheme`. – Soren Stoutner Jun 09 '16 at 17:23
-
It seems putting more than one custom theme in the manifest don't work. If you add a theme at application level and a second at activity level, only the application one is used. I tried to add one theme for each activity with different "look" but without good result. – Peter Sep 26 '16 at 14:06
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)

- 5,132
- 7
- 45
- 54