我正在尝试获得用户选择的主题,并感到很沮丧。在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。朝着正确方向的产品大加赞赏!
宝慕林4294392
函数式编程
相关分类