我已经阅读过有关此链接警告的其他帖子,但他们没有解决我的问题而且我仍然没有得到我做错的事。
在默认文件strings.xml中,我有:
<string name="rating_dialog">You\'re about to rate this app with %s stars.</string>
稍后,我在覆盖onClick方法中调用它:
v.getContext().getString(R.string.rating_dialog, String.valueOf(rating))
它看起来像:
You're about to rate this app with {String.valueOf(rating)} stars.
链接警告:
Format string is not a valid format string so it should not be passed to string.format
注意:
v
是View
,rating
是int
值。
我已检查其他语言的其他strings.xml
文件,所有翻译似乎都没问题。
解决:对于hindi string.xml,而不是%s,只有%。
答案 0 :(得分:1)
您需要为在XML
中定义的每个占位符分配一个位置。
然后你的字符串变为:
<string name="rating_dialog">You\'re about to rate this app with %1$s stars.</string>
答案 1 :(得分:0)
你可以这样做:
在string.xml中:
如果要分配整数值,请使用&#34;%1 $ d&#34; ,如果是String,则使用&#34;%1 $ s&#34; < /强>
1 用于定义位置。如果你想使用多个值,那么你可以使用&#34;%1 $ d&#34;,&#34;%2 $ d&#34;,....等
<string name="rating_dialog">You\'re about to rate this app with %1$d stars.</string>
然后在代码中执行:
v.getContext().getString(R.string.rating_dialog, rating);
希望它对你有所帮助。