这个格式string有什么问题?

我有这样的string

<string name="q_title" formatted="false">Item %d of %d</string> 

我正在使用它在String.format像这样:

 String log = String.format(getString(R.string.q_title), 100, 500); 

到目前为止,我没有观察到输出的问题。

不过,Android Studio中的代码检查给了我:

格式string“q_title”不是有效的格式string,因此不应将其传递给String.format

为什么?

  • 将Strings.xml中的String-Array更改为ArrayList
  • 在最后一次出现的字符上拆分string
  • 在ListView项目中突出显示search的文本
  • 如何将int转换为string并将其放置在EditText中?
  • AndroidManifest中的意图filter的操作名称不应该使用string引用吗?
  • Android,找不到string资源
  • 如何在Eclipse中添加string资源?
  • 所有的strings.xmlstring在Android的堆内存中总是可用?
  • 你的string应该是

     <string name="q_title" formatted="false">Item %1$d of %2$d</string> 

    和代码

     String log = getString(R.string.q_title, 100, 500); 

    当你有多个参数时,你需要用1 $,2 $ … n $来标记它们。 在阿拉伯语顺序是颠倒的,所以他们需要知道如何正确地改变它。

    getString(id, args...)本身执行格式。

    对于百分比,以下为我工作。

     <string name="score_percent">%s%%</string> getString(R.string.score_percent,"20") 

    如果你正在处理整数取代由D

     <string name="score_percent">%d%%</string> 

    对于那些仍然在寻找这个答案的人来说,正如Blackbelt发布的链接所暗示的那样,正确的string格式是:

     <string name="q_title">Item %1$d of %2$d</string> 

    当心逃避所有特殊字符

    我遇到了这个string的问题,因为我忘了在结尾处转义百分比字符“%”。

     <string name="market_variation_formatter">%s %</string> 

    好逃脱的string是:

     <string name="market_variation_formatter">%s \%</string>