XML中的"Xliff:g"标签介绍
今天在研究google蓝牙模块源码的时候发现了XML文件中有这样一行代码:
<string name="title_connected_to">connected to <xliff:g id="device_name">%1$s</xliff:g></string>
这个标签还真是第一次遇见,后来查了下资料,发现原来是用于动态插入(更新)内容的标签,贴下源代码:
setStatus(getString(R.string.title_connected_to, mConnectedDeviceName));
private final void setStatus(int resId) {
final ActionBar actionBar = getActionBar();
actionBar.setSubtitle(resId);
}
mConnectedDeviceName变量从字面意思看就知道是连接设备的名称,显示结果:connected to ***(蓝牙设备名)
看到这里是不是发现这个标签特别有用,可以将动态获得的数据跟XML中的字符串拼接,注意的是标签内容:%1$s中的"1"表示getString(int resId,Object... formatArgs)方法中可拼接参数Object...的第1个拼接参数,“s”表示拼接的数据类型为String类型,至于id则随便赋值。
这里整理了下标签内容的使用:
"%n$ms":代表拼接的是字符串,n代表是第几个参数,设置m的值可以设置拼接前的空格数
"%n$md":代表拼接的是整数,n代表是第几个参数,设置m的值可以设置设置拼接前的空格数
"%n$mf":代表拼接的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数