我正在尝试获取用户选择的主题,但感觉离成功很近。在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中进行开发。
相关问题请参考这里。