android — Динамически менять тему деятельности" />

Динамически менять тему деятельности

Мое приложение имеет общий основной вид деятельности. Основная деятельность читает свою конфигурацию из arrays.xml, как следует

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="home_buttons_text">
    <item>@string/Title_1</item>
  </string-array>
  <array name="home_buttons_icon">
    <item>@drawable/google</item>
  </array>
  <string-array name="home_buttons_url">
    <item>http://www.google.com</item>
  </string-array>
  <array name="themes">
    <item>@style/my_theme</item>
  </array>
</resources>

Таким образом, чтобы добавить новую иконку, я просто помещаю новые строки здесь.

Так что в "темах" есть название темы. Как я могу загрузить и применить тему по имени?

Для иконок, которые я использовал

TypedArray mItemsIcons = resources.obtainTypedArray(R.array.home_buttons_icon);
TypedArray mThemes = resources.obtainTypedArray(R.array.themes);
.
.
.
mItemsIcons.getDrawable(position);
.
.
.

Но я понятия не имею, как получить тему. Я проверил

int theme = mThemes.getResourceId(position);
setTheme(theme);

но это не работает.

Подробности смотрите здесь: http://developer.android .com /гид /темы /ресурсы /более-resources.html # TypedArray

4 голоса | спросил Premier 8 FebruaryEurope/MoscowbTue, 08 Feb 2011 19:18:32 +0300000000pmTue, 08 Feb 2011 19:18:32 +030011 2011, 19:18:32

1 ответ


0

вы можете использовать setTheme(..) перед вызовом setContentView(...) и super.oncreate() и все должно работать нормально

ответил Ahmed Salem 13 +04002011-10-13T13:57:43+04:00312011bEurope/MoscowThu, 13 Oct 2011 13:57:43 +0400 2011, 13:57:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132