Странная проблема с тематикой Android

#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:

Вы должны взглянуть на это:

Применение темы к вашему приложению