#android
#Android
Вопрос:
Я новичок по сравнению с разработкой для Android, и я просто просматриваю примеры проектов, чтобы освоиться с этим. Я просто попытался скопировать стиль из Wikitionary (пример приложения, которое поставляется с Android SDK).
<style name="LookupTheme" parent="@android:style/Theme.Light">
<item name="android:windowBackground">@drawable/lookup_bg</item>
</style>
И указал это в качестве темы по умолчанию в файле манифеста. Это привело к эффекту, подобному этому.
Это именно то, чего я хотел.. Теперь я добавил страницу настроек, чтобы позволить пользователю выбирать из списка темы для применения. Следовательно, я удалил атрибут theme из файла манифеста (чтобы использовать тему по умолчанию) и попытался применить тему программным путем. Вот так
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);
}
Теперь та же тема применяется программно (в отличие от декларативного подхода) и производит подобный эффект.
Кто-нибудь может объяснить, что здесь не так?
Ответ №1:
Вы должны взглянуть на это: