如何在Java代码中调用strings.xml中的通用占位符字符串资源
解决Java代码中使用带占位符的Android字符串资源问题
你遇到的这个问题很常见——直接拼接字符串会保留%s占位符,原因是getString(R.string.xxx)只是获取了未替换占位符的原始字符串,并不会自动处理参数。不用新建资源的话,直接用getString()的重载方法就能搞定:
textView.setText(getString(R.string.generic_price_with_rupee_symbol, "100"));
如果你的item.price是数字类型,也可以直接传入参数:
textView.setText(getString(R.string.generic_price_with_rupee_symbol, item.price));
这个重载方法会自动把后续参数替换到字符串对应的占位符位置,和你在数据绑定里用@string/generic_price_with_rupee_symbol(item.price)的效果完全一致,而且不需要额外新增资源文件。
之前你用getString(...) + "100"的方式,相当于把原始的"₹ %s"和"100"直接拼接,结果自然是"₹ %s100",所以才会显示错误的占位符。用带参数的getString就能完美解决这个问题啦~
内容的提问来源于stack exchange,提问作者Khemraj Sharma
相关产品推荐
相关产品推荐

