Я встановлюю текст за допомогою setText () наступним чином.
prodNameView.setText("" + name);
prodOriginalPriceView.setText("" + String.format(getString(R.string.string_product_rate_with_ruppe_sign), "" + new BigDecimal(price).setScale(2, RoundingMode.UP)));
У цьому Перший є простим у використанні, а Другим - це встановлення тексту з форматуванням тексту.
Android Studio настільки цікавий, що я скористався Меню, Analyze -> Code Cleanup
і я отримав пропозицію щодо двох вище рядків.
Не з'єднуйте текст, який відображається за допомогою setText. Використовуйте рядок ресурсів із заповнювачами. менше ... (Ctrl + F1)
Під час виклику TextView # setText:
- Ніколи не дзвоніть номер # toString () для форматування чисел; він не буде належним чином обробляти роздільники дробів та конкретні для локальної цифри. Спробуйте використовувати формат String # із належними специфікаціями формату (% d або% f).
- Не передайте рядковий літерал (наприклад, "Hello") для відображення тексту. Текст із твердим кодом неможливо правильно перекласти на інші мови. Спробуйте використовувати замість них рядки ресурсів Android.
- Не створюйте повідомлення за допомогою об'єднання текстових фрагментів. Такі повідомлення неможливо правильно перекласти.
Що я можу зробити для цього? Кожен може допомогти пояснити, що це за річ і що мені робити?
NPE
якщо name
єNULL
name
не NULL
перед використанням setText()
функції.
<string name="string_product_rate_with_ruppe_sign">Something %1$d</string>
І у своєму коді Java ви робите щось подібне: prodOriginalPriceView.setText(getString(R.string.string_product_rate_with_ruppe_sign), price);
(ви можете виконати форматування у файлі xml: [ developer.android.com/guide/topics/resources/…
String
вsetText()
. Наприклад:setText(name)
замістьsetText("" + name)
. Тому що, якщо ви з’єднаєте текст, він не буде перекладений так, як ви використовуєте текст із твердим кодом як повідомлення про це