Android中的string.xml文件是支持占位符的,可以动态改变数据。
例如:
<span style="font-size:14px;"><string name="data">整数型:%1$d,浮点型:%2$.2f,字符串:%3$s</string></span>
在程序中我们可以直接调用
<span style="font-size:14px;">String text = context.getString(R.string.data, 10, 10.5,“sss”);</span>
最后运行输出的结果就为:
整数型:10,浮点型:10.50,字符串:sss
如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:
<span style="font-size:14px;">Resources res = getResources(); String text = String.format(res.getString(R.string.data),10,10.5,"sss");</span>
分析:
其中%后面指的是占位符的位置,1表示第一位,2表示第二位。
$后面的字母/数字表示的是数据的类型。
d:表示整数型(%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0 )
f:表示浮点型(f前面的x.x表示小数点前后的位数。2.2即输出格式为00.00)
s:表示字符串
补充:如何在<string></string>中使用%号?
法1.用%%来表示1个%,和转意符号 \ 的用法相同
法2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可
如果需要有多个需要替换的变量,可以在xml定义如下标签
<span style="font-size:14px;"><string name="data"> 整数型: <xliff:g id="name1">%1$d</xliff:g> ,浮点型: <xliff:g id="name2">%2$.2f</xliff:g> ,字符串: <xliff:g id="name2">%3$s</xliff:g> </string></span>
需要再string.xml文件里添加xmlns
<span style="font-size:14px;"><resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> </span>
另附:
<b></b>加粗字体
<i></i> 斜体字体
<u></u> 给字体加下划线
\n 换行
\u0020表示空格
\u2026表示省略号
使用<b>和<b>来打印出<b></b> 这样的文字;“<”表示“<”的意思;
使用textView.setText(Html.fromHtml("Hello <b>World</b>,<font size=\"3\" color=\"red\">AnalysisXmlActivty!</font>"));
设置类似于html那样的效果