Рассмотрим как организовать перебор коллекции ресурсов в Kotlin на примере R.drawable.
Типичная задача заключается в том, чтобы отфильтровать элементы коллекции по имени и вернуть список целочисленных идентификаторов, соответствующих вашим критериям.
Т.к. требуется что то «возвращать», то логично оформить это в виде функции. В нашем случае она возвращает список целых чисел — MutableList<Int>.
Критерий в нашем случае будет связан с названием ресурса. Если название начинается с ‘icon_’, то мы будем добавлять id такого ресурса в список.
|
fun getIconIDs(): MutableList<Int> { val drawablesList = mutableListOf<Int>() // получаем список полей val drawablesFields = R.drawable::class.java.declaredFields for (field in drawablesFields) { // фильтруем if (field.type.toString() == "int" && field.name.indexOf("icon_") == 0) { drawablesList.add( field.getInt(R.drawable::class) ) } } return drawablesList } |
Kotlin
Данная запись опубликована в 21.11.2022 22:18 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Ноябрь 30, 2022 г.
В общем случае, когда вы находитесь в контексте Activity, это выглядит так:
[crayon-6895c37ca37d4482929803/]
При этом вызов getResources() в этом контексте и необязателен, т.е. работает и так:
[crayon-6895c37ca37df368594743/]
Если вы находитесь ...
Читать
Март 14, 2023 г.
Получение доступа к классу в режиме рантайм добавляет известной гибкости. Одна из типичных задач - создание экземпляра класса по его имени.
В котлин это делается вот так:
[crayon-6895c37ca393c849989492/]
Есть несколько нюансов/рекомендаций. ...
Читать
Ноябрь 5, 2022 г.
Задача - создать файл в каталоге Downloads из вашего приложения на платформе Android.
Пусть это будет какой то текстовый файл, который наше приложение умеет генерировать. Формат файла - XML.
Наша задача решается по-разному для андроидов 10+ ...
Читать
Март 20, 2023 г.
Компонент Button использует material дизайн и имеет некоторые предопределенные стили, которые иногда хочется изменить. Мне чаще всего требуется убрать UPPERCASE с текста кнопки.
На старте шаблон компонента выглядит вот так:
[crayon-6895c37ca4050850082552/] ...
Читать