#android #string #kotlin
#Android #строка #kotlin
Вопрос:
Я хочу установить тексты: станция 1, станция 2, станция 3…
Если у меня есть подобный код (фрейм типа ScrollView), я получаю предупреждение: «Не объединять отображаемый текст с setText. Используйте строку ресурса с заполнителями».
for(i in 1..10){
frame.stationTextView.text = "Station $i"
}
Однако, если я это сделаю, я не получу предупреждение.
for(i in 1..10){
val str = "Station $i"
frame.stationTextView.text = str
}
Второй пример кажется мне избыточным, но предупреждение исчезло. Какой из них правильный, вероятно, ни тот, ни другой. Я не уверен, как использовать строку ресурса с изменяющимся индексом.
Комментарии:
1. Второй способ по-прежнему «неправильный». Линтер просто недостаточно сложен, чтобы перехватить его и предупредить вас об этом. Это говорит вам не отображать жестко закодированный текст вместо использования надлежащих строковых ресурсов.
Ответ №1:
Создайте строковый ресурс, подобный следующему
<string name="station_counter_text">Station %1$d</string>
Затем из Activity / Fragment используйте следующее
for(i in 1..10)
frame.stationTextView.text = getString(R.string. station_counter_text,i)