如果想简单的构造一个字符串,同时想国际化,想在程序中构造比较麻烦,直接在xml中配置,让系统来做出选择是个不错的选择。
这里要注意一个问题,加上前缀,也就是声明,简单的例子如下:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="battery_history_minutes">"<xliff:g id="MINUTES">%1$d</xliff:g> 分 <xliff:g id="SECONDS">%2$d</xliff:g> 秒"</string>
<string name="battery_history_seconds">"<xliff:g id="SECONDS">%1$d</xliff:g> 秒"</string>
</resources>
这里有两点容易出问题的
1.在第一行中容易出现空格,程序会报错
2.在resources中未声明。
<xliff:g>标签介绍:
<string name="appwidget_text_format"><xliff:g id="prefix">%1$s</xliff:g>: <xliff:g id="time">%2$s</xliff:g></string>
这个主要用于程序中,动态的插入内容时候使用,例如,
<string name="time">当前时间:<xliff:g id="prefix">%1$s</xliff:g>时 <xliff:g id="time">%2$s</xliff:g>分</string>
然后通过程序,context.getString(R.string.time,"10","05");
将会输出——当前时间:10时05分
属性id可以随便命名
属性example表示举例说明,可以省略
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
转自:http://hi.baidu.com/java6666/item/4e28849775d70abd83d29514
不要全信!
<string name="violate_type_add">违章类型:%s</string>
getString(R.string.violate_type_add,"其他"); 得到 违章类型:其他。Resource中没有任何声明。