Я пытаюсь получить выбранную пользователем тему и чувствую, что я расстроен. Определение темы в AndroidManifest.xml
работает так, как должно, но (насколько я могу судить) не может измениться в зависимости от настроек приложения:
<application
android:theme="@style/theme_sunshine"
android:icon="@drawable/icon"
android:label="@string/app_name">
В качестве альтернативы, установка динамически в каждом действии также работает:
someChosenTheme = PreferenceManager.getDefaultSharedPreferences(this).getString("themePreference", "theme_twilight");
setTheme(someOtherChosenTheme);
Но это кажется беспорядочным, и я предпочел бы установить тему для всего приложения в одном месте. Моя первая мысль заключалась в том, чтобы захватить контекст приложения, как только начнется моя основная деятельность и сделайте это:
getApplicationContext().setTheme(R.style.theme_dummy);
Насколько я могу судить, этот должен делать трюк, но на самом деле он ничего не делает - у всего приложения есть значение по умолчанию Стиль Android. Является ли это выше, и если да, могу ли я сделать что-то еще немое?
Я работаю на уровне API 3, если это имеет значение. Добродетели в правильном направлении высоко оценили!