Я новичок в разработке для Android, и, хотя кодирование имеет смысл, темы для Android, ИМХО, не подходят.
У меня возникли проблемы с реализацией этой простой задачи:
У меня есть (например) цвет с именем "blah"
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blah">#F0F0F0</color>
<resources>
который используется везде в XML-макетах или коде, а также в различных компонентах представления как "@color/blah"
Я просто хотел бы сделать это изменение значения цвета для каждой темы
Поэтому, когда я использую MyTheme1, blah должен быть #F0F0F0, а когда я использую MyTheme2, blah должен быть #00FF00.
Я читал о темах и до сих пор не могу понять, как реализовать эту простую задачу, поскольку моему приложению не требуются специальные стили и т. Д., Только цвета для каждой темы.
Спасибо заранее
ОБНОВЛЕНИЕ:
После ссылки, предоставленной Mohamed_AbdAllah, мне удалось создать несколько пользовательских цветов, определив их в attrs.xml и styles.xml:
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="color_item_title" format="color|reference" />
</resources>
styles.xml
<style name="AppBaseThemeDark" parent="android:Theme.Black">
<item name="color_item_title">@color/White</item>
</style>
Но теперь возникает гораздо более серьезная проблема
Я могу успешно использовать цвет ?color_item_title в каждом представлении, поэтому кнопки и текст фактически получают этот цвет.
Но использование этого ?color_item_title в пользовательских чертежах или макетах списка (ЭТО ПРЕДСТАВЛЕНИЯ, КОТОРЫЕ РАЗДУВАЮТСЯ ВО ВРЕМЯ ВЫПОЛНЕНИЯ) вызывает сбой.
Таким образом, использование ?color_item_title внутри макета списка listview приводит к сбою во время выполнения с сообщением надувания в этой строке :(
Он также дает сбой на моих чертежах: (опять ошибка инфляции)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/Black" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<stroke android:width="1dp" android:color="?color_item_title" />
</shape>