Страницы

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

понедельник, 8 октября 2018 г.

Конкатенация в setText() - Anroid Studio не нравится

В качестве упражнения делаю простое приложение по заказу пиццы - выбор размера (влияет на цену) плюс дополнительный топпинг (тоже влияет на цену).
В итоге подбивается сумма заказа:
total.setText(getString(R.string.total_price_output) + String.format("%.02f", calculateTotal()));
Здесь total_price_output - это фраза "Total Price: $" в strings.xml, a метод calculateTotal() как раз и вычисляет общую стоимость заказа с учетом размеров и топпингов.
Все работает, но Андроид Студио выделяет эту строчку желтой черточкой, т.е. код не соответствует правилам хорошего тона и дает мне такую рекомендацию:
Do not concatenate text displayed with setText. Use resource string with placeholders.
Как поступить? Добавить переменную, присвоить ей все, что сейчас идет в setText() и затем вызвать setText() с этой переменной?


Ответ

Студия говорит о том, что правильнее использовать плейсхолдеры в ресурсах.
Пример из официальной документации (заголовок Formating strings).
строка в файле ресурсов:
Hello, %1$s! You have %2$d new messages.
вызов в коде:
String text = getString(R.string.welcome_messages, username, mailCount);
на место %1$s в строке ресурсов подставится значение username, на место %2$d - mailCount. при этом s в плейсхолдере значит строку, а d - число.
в результате получим строку вида:Hello, Petrov! You have 3 new messages

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

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