Я хочу изменить несколько цветов textView через пару операторов if.Все они имеют разные идентификаторы, за исключением последней части, которая заканчивается на ".... Цена".Я попытался просто вставить оператор if на всех из них, но сборка не удалась.
Я сделал такие заявления.
textView1Price = ("+10.00")
textView2Price = ("-10.00")
textView3Price = ("0.00")
и операторы if, подобные этому.
if (colorID.text.startsWith("-")) {
colorID.setTextColor(Color.RED)
}
if (colorID.text.startsWith("+")) {
colorID.setTextColor(Color.GREEN)
}
if (colorID.text.startsWith("0.00")) {
colorID.text = "_"
colorID.setTextColor(Color.DKGRAY)
У меня проблемы с выяснениемкак связать объявления с операторами If.Я попытался что-то подобное с частичным успехом, но не могу перечислить более одной декларации.
val colorID = textView1Price
Я также пытался найти способ ссылаться на
text.contains("Price")
, ноне смог.Любая помощь приветствуется.Спасибо за ваше время.
РЕДАКТИРОВАТЬ: Решение Продолжение
//Declarations
//metal location A price
Price1 = ("+10.00")
//metal location B price
Price2 = ("-10.00")
//metal location C price
Price3 = ("0.00")
Android Studio рекомендуется, когда заявление закончится, если
(1..912).forEach {
val id = resources.getIdentifier("Price$it", "id", packageName)
val tv = findViewById<TextView>(id)
when {
tv.text.startsWith("-") -> tv.setTextColor(Color.RED)
tv.text.startsWith("+") -> tv.setTextColor(Color.GREEN)
tv.text.startsWith("0.00") -> {
tv.text = "_"
tv.setTextColor(Color.DKGRAY)
}
}
}