如何在安卓中使用整数资源在字符串资源中

19

我如何在我的strings.xml文件中使用存储在integers.xml文件中的整数?

例如:

我有<integer name="some_integer">5</integer>,我想在我的strings.xml文件中使用它:

<string name="some_string">This is my string num @integers/some_integer in a row</string>

显然我的方法不好,所以我需要一点帮助。我相信有可能的解决方案,只是我不知道正确的方案。

感谢所有的帮助!

2个回答

22

简而言之,您不能像这样混合使用资源,但您可以在Java中使用:

getResources.getString(R.string.some_string,
                       getResources.getInteger(R.integer.some_integer)
                      );

然后在您的String XML中

<string name="some_string">This is my string num %d in a row</string>

这样,%d将被你在getString中传递的整数所替换。


注:我全部凭记忆写下,可能会有一些错别字。 - Budius
4
希望我能够接受你们两个的答案。实际上它的结果是<string name="my_name">这里是文本 num %1$d 和 num %2$d </string>,而你需要使用getString(R.string.my_name),并获取getResources().getInteger(R.integer.num1)和getResources().getInteger(R.integer.num2) - slorangex

4

有人说你的方法行不通。以下是一种旧的解决类似问题的方法:

<string name="meatShootingMessage">You shot %1$d pounds of meat!</string>

int numPoundsMeat = 123;
String strMeatFormat = getResources().getString(R.string.meatShootingMessage);
String strMeatMsg = String.format(strMeatFormat, numPoundsMeat);

请参考以下参考资料:

将我的答案与@Budius提供的答案混合。 - Roberto Tellez Ibarra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接