与android开发相比,我是一个新手,我只是通过示例项目来获取它。我只是试图从Wikitionary(Android SDK附带的一个示例应用程序)复制样式。
<style name="LookupTheme" parent="@android:style/Theme.Light">
<item name="android:windowBackground">@drawable/lookup_bg</item>
</style>
并将其指定为清单文件中的默认主题。这产生了一种效果,如下所示。
这正是我想要的..现在我添加了一个首选项页面,允许用户从要应用的主题列表中进行选择。因此,我从清单文件中删除了主题属性(使用默认主题),我尝试以编程方式应用主题。喜欢这个
SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(act.getApplicationContext());
String themeid = sPref.getString("theme_pref", "1");
int themeID = Integer.valueOf(themeid);
if(themeID== 2){
Log.d(Constants.LOG_TAG, "Light theme have been choosen");
act.setTheme(R.style.LookupTheme);
}
现在以编程方式应用相同的主题(与声明方法相反)并产生这样的效果。
有人可以解释这里有什么问题吗?