Мне нужно в моем приложении для Android, чтобы избежать необходимости повторять строку каждый раз, когда появляется новый случай, я хотел сделать вызов этой строки в цикле forEach.
Я нахожусь во фрагменте, поэтому мой view
относится к текущему представлению, в котором я не могу динамически получать доступ к своим свойствам.
Вот что я сделал:
val product = arguments!!.getParcelable<Product>(ARG_PRODUCT)!!
listOf("fat", "fat_acids", "salt", "sugar").forEach {
view.get<TextView>(it).text = view.context.getString(
resources.getIdentifier("of_${it}", "string", view.context.packageName),
product.nutriFacts[it].quantityFor100,
product.nutriFacts[it].unit
)
}
Тогда студия Android сказала мне, что мне нужно создать новый метод доступа к свойствам, в данном случае оператор:
private operator fun <T> View.get(property: String): T {
return this[property]
}
Но теперь ошибка является ошибкой StackOverflow (ирония не так) в этой точной строке:
return this[property]
Как мне этого добиться?