码迷,mamicode.com
首页 > 移动开发 > 详细

【转】关于Android资源文件中出现百分号的问题

时间:2015-06-18 18:50:55      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

 

关于Android资源文件中出现百分号的问题

分类: Android JAVA
 

目录(?)[+]

 

问题
编辑strings.xml的时候


在行

[html] view plaincopy技术分享技术分享
 
  1. <string name="myurl">http://code.dd.com/rr?q=%rr.55</string>  

 

或者

[html] view plaincopy技术分享技术分享
 
  1. <string name="message_content‘>恭喜您你获得%1s 积分,占比%2s  %</string>  

提示下面的错误

[css] view plaincopy技术分享技术分享
 
  1. Multiple annotations found at this line:  
  2. - error: Multiple substitutions specified in non-positional format; did you mean to add  
  3. the formatted="false" attribute?  
  4. - error: Unexpected end tag string  


出现这个错误的原因主要是因为strings字串中包含百分号(%),

一:有几种方式解决

1.用两个百分号表示一个百分号即

[html] view plaincopy技术分享技术分享
 
  1. <string name="myurl">http://code.dd.com/rr?q=%%rr.55</string>  
  2.   
  3. <string name="message_content‘>恭喜您你获得%1s 积分,占比%2s  %%</string>  


2.用转义符表示

[html] view plaincopy技术分享技术分享
 
  1. <string name="myurl">http://code.dd.com/rr?q=\%rr.55</string>  


二:无需格式化

根据错误提示可知,如果字符串无需格式化,可在<string 标签上增加属性:formatted="false",即

[html] view plaincopy技术分享技术分享
 
  1. <string name="myurl" formatted="false">http://code.dd.com/rr?q=%rr.55</string>  


 三:关于上面问题的延伸

 

如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:

[html] view plaincopy技术分享技术分享
 
  1. <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>  

 

在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:

[java] view plaincopy技术分享技术分享
 
  1. Resources res = getResources();  
  2.   
  3. String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);  

 

那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。

【转】关于Android资源文件中出现百分号的问题

标签:

原文地址:http://www.cnblogs.com/DarkMaster/p/4586567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!