Проблема форматирования строк в Android

Я столкнулся с проблемой "string.format" в приложении для Android. В моем приложении, когда пользователь меняет свои языковые предпочтения со стандартного (английский) на любой другой иностранный язык (японский, немецкий и т. Д.), Переменная позиционирования строки выдает ошибку принудительного закрытия. Пожалуйста, ознакомьтесь с кодом ниже:

temp = String.format (locale, getResources (). getString (R.string.temp_string), значение, имя);

где, temp_string = "Номер посылки%1$d принадлежит%2$s" для выбора по умолчанию (английский), когда в некоторых из них выбраны другие языки,% 2 $ s предшествует%1$d . Из-за чего приложение силы закрывается. Есть ли способ, чтобы динамически обрабатывать переменные строки (значение, имя).

1 ответ

Решение

Я бы сделал что-то вроде:

temp = getResources().getString(R.string.temp_string, value, name);

Как вы видите, getString() Метод также может получать параметры для форматирования. Затем разместите разные строковые ресурсы в разных папках. Например:

res/
   values/
       string.xml <--- here you put "The parcel number %1$d belongs to %2$s"
   values-de/
       string.xml <--- here you put "The parcel number %2$d belongs to %1$s"

Я просто даю вам пример; Я на самом деле не знаю, как порядок в Германии. Я просто хочу объяснить, что вы на самом деле должны попробовать.

Другие вопросы по тегам