我有一个字符串数组,其中使用了%符号。使用%的正确格式是%。当数组中有多个%它给出了这个错误。

 Multiple annotations found at this
 line:
 - error: Multiple substitutions specified in non-positional format;
   did you mean to add the formatted="false" attribute?
 - error: Found tag </item> where </string-array> is expected

当前回答

可以用%%转义xml中的%,但需要在代码中设置文本,而不是在布局xml中设置文本。

其他回答

要转义百分比符号,只需要%%

例如:

String.format("%1$d%%", 10)

返回“10%”

为了允许应用程序使用资源中的格式化字符串,你应该纠正你的xml。举个例子

<string name="app_name">Your App name, ver.%d</string>

应该用

<string name="app_name">Your App name, ver.%1$d</string>

你可以看到这个细节。

在你的strings.xml文件中,你可以使用任何你想要的Unicode符号。

例如,百分比符号的Unicode数字是0025:

<string name="percent_sign">&#x0025;</string>

您可以在这里看到Unicode符号的综合列表

根据谷歌官方文档,使用%1$s和%2$s http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

你好,% 1 $ s !您有%2$d条新消息。

尝试在它前面使用反斜杠,如下所示:

\%