我创建了一个PreferenceActivity,允许用户选择他想要应用于整个应用程序的主题.
当用户选择主题时,执行以下代码:
if (...) {
getApplication().setTheme(R.style.BlackTheme);
} else {
getApplication().setTheme(R.style.LightTheme);
}
Run Code Online (Sandbox Code Playgroud)
但是,即使我已经使用调试器检查了代码是否正在执行,我也看不到用户界面的任何变化.
主题是定义的res/values/styles.xml,Eclipse没有显示任何错误.
<resources>
<style name="LightTheme" parent="@android:style/Theme.Light">
</style>
<style name="BlackTheme" parent="@android:style/Theme.Black">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情以及如何解决问题的任何想法?我应该拨打setTheme代码中的任何特殊点吗?如果有帮助,我的应用程序包含几个活动.
我知道如何在清单中将主题设置为整个应用程序,但如何以编程方式将主题设置为整个应用程序?我正在尝试这个:getApplicationContext.setTheme(R.style.mytheme),但它不起作用.
我认为getApplicationContext是应用程序的上下文,可以设置整个应用程序的主题.