Android中string.xml,动态改变数据方法

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表示省略号 

使用&lt;b>和&lt;b>来打印出<b></b> 这样的文字;“&lt;”表示“<”的意思;

使用textView.setText(Html.fromHtml("Hello <b>World</b>,<font size=\"3\" color=\"red\">AnalysisXmlActivty!</font>"));

设置类似于html那样的效果





你可能感兴趣的:(String,数据)