Рассмотрим как организовать перебор коллекции ресурсов в Kotlin на примере R.drawable.
Типичная задача заключается в том, чтобы отфильтровать элементы коллекции по имени и вернуть список целочисленных идентификаторов, соответствующих вашим критериям.
Т.к. требуется что то «возвращать», то логично оформить это в виде функции. В нашем случае она возвращает список целых чисел — MutableList<Int>.
Критерий в нашем случае будет связан с названием ресурса. Если название начинается с ‘icon_’, то мы будем добавлять id такого ресурса в список.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 } |