Android strings.xml中放格式化参数的字符串

参考:Are parameters in strings.xml possible?

在Android开发中,字符串资源建议放在res/values/strings.xml文件中,当有类似你有3次机会这样的字符串,其中3是变量,那么就需要这样的格式化字符串你有%d次机会。如果直接把这个格式化字符串放在res/values/strings.xml文件中的话,是不会达到预期效果的,需要转义%d这个字符。应该换成你有%1$d次机会。同样的,%s应该转义为%1$s,依次类推。

现在格式化字符串有了,使用的时候可以用如下代码段:

1
2
3
4
5
6
//假定字符串资源ID是 chance_times
//从资源文件中读取格式化字符串
String chances = getContext().getResources().getString(R.string.chance_times);
//用具体的数值格式化,得到的字符串为你有3次机会
String formated_str = String.format(chances, 3);
//心在可以显示formated_str了,代码省略