Как в kotlin в строку из ресурса добавить переменную?
Нужно в присваиваемую строку: bindingclass.tvDinner.setText(R.string.block2)
добавить переменную: var appleCount = bindingclass.etApple.text.toString().toInt()
чтоб на выходе в textview было что то вроде этого:
"я сегодня съел 15 яблок"
Ответы (2 шт):
Автор решения: Wlad
→ Ссылка
<string name="test_string">Привет, это %s! Купишь яблоки?</string>
val a = getString(R.string.test_string, "Wlad")
Автор решения: Vadik
→ Ссылка
Для решения этой задачи используйте plurals.
Добавьте ресурс plurals в values-ru/string.xml. Для русского языка важно, чтобы файл string.xml лежал в директории values-ru и чтобы были объявлены все три элемента: one, few и many:
<resources>
...
<plurals name="block">
<item quantity="one">Я сегодня съел %d яблоко</item>
<item quantity="few">Я сегодня съел %d яблока</item>
<item quantity="many">Я сегодня съел %d яблок</item>
</plurals>
</resources>
Теперь используйте метод getQuantityString, чтобы получить этот ресурс в коде:
val appleCount = 15
val text = resources.getQuantityString(R.plurals.block, appleCount, appleCount)
Далее, установите полученный текст в TextView:
textView.setText(text)