Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

При выводе text.setText(R.string.slovo + “ ” + intValue); - выводится инт адрес ресурса

#android #android_textview


При выводе text.setText(R.string.slovo + " " + intValue);- выводится int адрес ресурса.Нужно
чтобы выводился String из ресурса плюс intValue. intValue меняется динамически поэтому
загонять его в ресурсы смысла нет.
    


Ответы

Ответ 1



Все правильно вы должны образаться к ресурсам черех getResources. Пример getResources().getString(R.string.slovo )

Ответ 2



В дополнение к ответу @elik хотелось бы отметить, что Android API предоставляет специальный метод для форматирования ресурсов Resources.html#getString(int, java.lang.Object...). В нём есть свои подводные камни, но в целом он работает достаточно просто и делает код чище. Например, Hello, %s! text.setText(getString(R.string.my_string_to_format, "world")); Слово world будет автоматически подставлено вместо %s. Это особенно важно для локализации, т.к. в различных языках строка/число, которое вы хотите добавить, может находиться в разных частях предложения! Вы можете добавлять произвольное число параметров к строке. Например, I have %1$d %2$s text.setText(getString(R.string.my_string_to_format, 10, "frogs"));

Комментариев нет:

Отправить комментарий