Question

Je tente d'obtenir un thème choisi par l'utilisateur et l'impression que je suis frustrante près. Définir le thème AndroidManifest.xml fonctionne comme il se doit, mais (comme je le peux dire) ne peut pas changer en fonction des préférences de l'application:

<application 
    android:theme="@style/theme_sunshine" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name">

Vous pouvez également mettre dynamiquement dans chaque activité fonctionne également:

someChosenTheme = PreferenceManager.getDefaultSharedPreferences(this).getString("themePreference", "theme_twilight");
setTheme(someOtherChosenTheme);

Mais qui semble en désordre, et je préfère définir le thème de l'application entière dans un seul endroit. Ma première pensée était de saisir le contexte d'application dès que mon activité principale des lancements et le faire là-bas:

getApplicationContext().setTheme(R.style.theme_dummy);

mieux que je peux dire, ce devrait faire l'affaire, mais en fait, il ne fait rien - l'application entière a le style par défaut Android. Est-ce ce qui précède valide, et si oui, pourrais-je faire quelque chose d'autre stupide?

Je travaille dans le niveau de l'API 3 si cette question. Aiguillons dans la bonne direction grandement appréciée!

question connexe.

Était-ce utile?

La solution

Créer une activité de base pour votre application et passer outre onCreate pour définir le thème. Intégrer toutes vos autres activités de cette activité de base.

Vérifiez également ce tutoriel: http://www.androidengineer.com/2010/06 /using-themes-in-android-applications.html

Autres conseils

Il peut être une bonne solution à cela, mais je ne pouvais pas trouver un, alors je fini par faire un peu de méthode d'assistance de statique dans une classe d'aide qui prend une activité et réalise essentiellement ces deux lignes que vous avez écrit. Bien sûr, il est pas parfait, mais juste d'ajouter une ligne courte de code à chaque méthode onCreate() dans mon application était tolérable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top