我在安卓应用程序中遇到了"string.format"的问题。在我的应用程序中,当用户将其语言首选项从默认(英语)更改为任何其他外语(日语、德语等)时,变量字符串定位会给出强制关闭错误。请参考以下代码:
temp = String.format(locale,getResources().getString(R.string.temp_string), value, name);
其中,temp_string = "包裹编号 %1$d 属于 %2$s"作为默认选择(英语) 当在其中一些语言中选择其他语言时,%2$s 在 %1$d 之前。因此,应用力关闭。有没有办法动态处理变量字符串(值,名称)。
我会做这样的事情:
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"
我只是举个例子;我实际上不知道德国的秩序如何。我只是想解释一下你实际上必须尝试的东西。