Je sais comment appliquer un thème à une application complète, mais où irais-je pour appliquer un thème à une seule activité?
Vous pouvez appliquer un thème à n'importe quelle activité en incluant Android:theme
Dans <activity>
Dans le fichier manifeste.
Par exemple:
<activity Android:theme="@Android:style/Theme.Dialog">
<activity Android:theme="@style/CustomTheme">
Et si vous souhaitez définir un thème par programme, utilisez setTheme()
avant d'appeler setContentView()
et super.onCreate()
à l'intérieur de la méthode onCreate()
.
Pour le définir par programme dans 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);
Pour définir le champ d'application dans le fichier Manifest.xml (toutes les activités):
<application
Android:theme="@Android:style/Theme.Holo"
Android:theme="@style/MyTheme">
Pour définir la portée de l'activité dans Manifest.xml (activité unique):
<activity
Android:theme="@Android:style/Theme.Holo"
Android:theme="@style/MyTheme">
Pour créer un thème personnalisé, vous devez le déclarer dans le fichier themes.xml et définir les styles dans le fichier styles.xml.
Avant d'appeler setContentView()
, appelez setTheme(Android.R.style...)
et remplacez simplement le ... par le thème de votre choix (Theme, Theme_NoTitleBar, etc.).
Ou si votre thème est un thème personnalisé, remplacez le tout, afin que vous obteniez setTheme(yourThemesResouceId)