如何在 <string-array> 上使用 Java/Android 字符串格式
how to use Java/Android string formatting on <string-array>
如何在
<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>
或者在这种情况下通常使用哪种技术?
我只知道如何格式化字符串资源。(with getString(R.id.mystring,replacevalue)
)
感谢您的帮助!
编辑:
- 我尝试使用 getStringArray(),但是这个方法不接受一个以上的参数,它只是一个 Array-Ressource。
Android 支持使用 getString(String str,Object... args)
进行格式化。 Link here
或者您可以使用方法包装格式。
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);
}
我个人比较喜欢第二种方式,方便以后修改。
不幸的是,Android 没有提供直接的方法来实现这一点。你能做的最好的事情是:
String.format(getResources().getStringArray(R.array.notification-msgs)[0], "Someone")
如何在
<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>
或者在这种情况下通常使用哪种技术?
我只知道如何格式化字符串资源。(with getString(R.id.mystring,replacevalue)
)
感谢您的帮助!
编辑:
- 我尝试使用 getStringArray(),但是这个方法不接受一个以上的参数,它只是一个 Array-Ressource。
Android 支持使用 getString(String str,Object... args)
进行格式化。 Link here
或者您可以使用方法包装格式。
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);
}
我个人比较喜欢第二种方式,方便以后修改。
不幸的是,Android 没有提供直接的方法来实现这一点。你能做的最好的事情是:
String.format(getResources().getStringArray(R.array.notification-msgs)[0], "Someone")