新版adt下android资源文件string的格式化问题
来源:互联网 发布:spice仿真软件下载 编辑:程序博客网 时间:2024/05/20 19:46
最近使用string资源文件定义了一个字符串<string name="txt_recharge_callback_info">单次充值%1$d元即送%2$d元</string>
结果报错如下:
Multiple annotations found at this line:
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false"
attribute?
- error: Unexpected end tag string
在网上找问题时发现了这篇文章:
这是由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明了如何去设置 %s 等符号,下面是文档片段:
If you need to format your strings using String.format(String, Object...) , then you can do so by putting your format arguments in the string resource. For example, with the following resource:
如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your application like this:
在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。
问题补充:
有读者问如何在<string></string>中使用%号
有两个办法可供选择
1. 用%%来表示1个%,和转意符号 / 的用法相同
2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可。
转自http://www.linuxidc.com/Linux/2013-03/81604.htm
- 新版adt下android资源文件string的格式化问题
- Android 的String资源格式化方法
- 新版ADT出现appcompat_v7的问题
- 新版adt打包问题
- Android:string资源格式化字符串
- 新版ADT在eclipse下创建Android工程时多出appcompat_v7的错误问题解决办法
- 关于Android新版ADT创建项目时出现appcompat_v7的问题
- 解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题
- Android String资源文件的使用
- Android资源文件string的一点说明
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 新版ADT创建项目时出现appcompat_v7的问题
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 频域滤波(一) 傅里叶谱与相位
- C++课上ppt6复习 Standard Template Library
- linux快速删除大量小文件
- WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
- 电脑硬盘数据丢失后怎么恢复
- 新版adt下android资源文件string的格式化问题
- 关于编号自增问题
- Ruby on Rails Tutorial 学习笔记 --第三章 基本静态的页面
- CSS3学习笔记之(三)选择器
- java时间与sql时间的转换,
- Android数据库的操作
- classloader 类加载器详解
- LOG算子
- stduy queue