как использовать форматирование строк Java / Android на - PullRequest
0 голосов
/ 01 июня 2018

Как можно использовать форматирование строки на ресурсе
<string-array><item> в Android?

Должен ли я сделать это, как показано в следующем примере (и как мне это сделать, если да) ...

<string-array name="notification-msgs">
   <item>%s sent you a message.</item>
   <item>%s answered to your Story</item>
</string-array>

или какую технику обычно используют в этом случае?Я знаю только, как форматировать строковые ресурсы. (С getString(R.id.mystring,replacevalue)) Спасибо за любую помощь!
РЕДАКТИРОВАТЬ:

  • Я пытался использовать getStringArray (), но этоМетод не принимает более одного аргумента, который является просто Array-Ressource.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

К сожалению, Android не предоставляет прямого пути для достижения этой цели.Лучшее, что вы можете сделать, это:

String.format(getResources().getStringArray(R.array.notification-msgs)[0], "Someone")

0 голосов
/ 01 июня 2018

Android поддерживает форматирование с getString(String str,Object... args). Ссылка здесь
Или вы можете обернуть форматирование методом.

public static String formatString(String pure,Object... args){
     return String.format(pure,args);
}
//Or 
public static String formatString(int id,Context context,Object... args){
     String pure = context.getString(id);
     return String.format(pure,args);
}

Я лично предпочитаю второй подход, его легко изменить в будущем.

...