Как восстановить определенные значения <item name> из всех стилей в styles.xml - PullRequest
0 голосов
/ 21 января 2019

В основном: у меня есть две темы:

<style name="MyLightTheme" parent="Base.AppTheme.Light"></style>
<style name="Base.AppTheme.Light" parent="Theme.AppCompat.NoActionBar">   
    <item name="themeName">MyLightTheme</item>
</style>

и

<style name="MyDarkTheme" parent="Base.AppTheme.Dark"></style>
<style name="Base.AppTheme.Dark" parent="Theme.AppCompat.NoActionBar">
    <item name="themeName">MyDarkTheme</item>
</style>

Оба имеют атрибут "themeName", который я могу получить с помощью

    TypedValue themeValue = new TypedValue();
    getTheme().resolveAttribute(R.attr.themeName, themeValue, true);

Это прекрасно работает с current Theme. Но теперь я хочу создать несколько радио-кнопок, с помощью которых я могу выбрать тему, которую я хочу.

Я не хочу жестко задавать имена своих тем в случае, если я захочу изменить их позже. Я могу получить имя активной темы, но есть ли способ получить все значения "themeName" из файла styles.xml?

...