Я сделал массив элементов с цветами в colors.xml файла:Как получить доступ к XML-массиву с массивом XML?
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<array name="rectangle_colors">
<item>
<color>#77aa3535</color>
</item>
<item>
<color>#44cc1818</color>
</item>
<item>
<color>#ff1068</color>
</item>
<item>
<color>#6090cc</color>
</item>
<item>
<color>#6040aa</color>
</item>
</array>
</resources>
Я хочу, чтобы получить доступ к этим цвета, как в Java, так и в других файлах XML. Я нашел много информации о том, как получить доступ к ним в Java, но ничего для доступа к ним в XML за пределами документации here. Я не могу понять, как использовать шаблон они обеспечивают:
@[package:]array.array_name
Я попытался это:
android:background="@[com.example.jason.miniproject].array.rectangle_colors[0]"
, но он не работает.
Есть ли какой-либо способ для просмотра всех моих значений ресурсов XML в Android Studio, кроме функции автозаполнения, которая появляется, когда я начинаю печатать в нужном месте?
Кроме того, я собираюсь сделать это неправильно? У меня есть куча взглядов, и я хочу, чтобы эти взгляды начинались с разных цветов фона. Я хотел бы получить эти цвета из файла XML. Затем я хочу изменить эти цвета в Java, когда пользователь взаимодействует с приложением. Новые цвета будут вариациями исходных цветов, поэтому я хочу перебрать исходные цвета на Java. Является ли мой подход к сохранению этих цветов хорошей идеей?
Как я уже сказал, я уже нашел много информации о доступе к XML-массивам на Java. Я хочу получить к ним доступ в XML. Документация, с которой я связан, указывает, что это возможно, но я не могу понять, как использовать шаблон, который они предоставили. Я начинаю думать, что шаблон предназначен только для доступа к всему массиву, а не для доступа к отдельным элементам массива. – Jason
Как вы сказали, вы можете ссылаться только на целый массив, а не на просто элемент XML. Проблема заключается в том, что элемент массива не имеет имени, не имеет идентификатора, поэтому вы можете получить доступ только к одному элементу в коде. – tdmsoares