第一种方法:
在string.xml中进行操作
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name">MyStringDemo</string>
<!--不加空格-->
<string name="test">我今年<tools id="xxx">%1d</tools>岁了,上<tools id="xxx">%s</tools>年级!</string>
<!--加空格-->
<string name="test1">我今年<tools id="xxx">%1$3d</tools>岁了,上<tools id="xxx">%2$9s</tools>年级!</string>
</resources>
在代码中使用的地方只需要调用String类的format方法:
mTextView = (TextView) findViewById(R.id.text_);
mTextView.setText(String.format(getResources().getString(R.string.test1),8,"二"));
输出的情况:
我今年8岁了,上二年级!
我今年 八岁了,上 二年级!
X%符号类的解释:
d%表示整数;
f%表示浮点型;
s%表示字符串类型
%1$3d表示String类格式化的第一个是整型,3个空格;
%2$9s表示string类格式化的第二个是字符串类型,9个空格;
第二种方法:
1.整型 :1%$d
<string name="test2">我今年%1$5d岁了</string>
mTextView.setText(String.format(getResources().getString(R.string.test2),8));
2字符串类型:1%$s
<string name="test3">我叫%1$s,来自%2$s</string>
mTextView.setText(String.format(getResources().getString(R.string.test3),"张三","北京"));
3.还有插入html格式
<string name="test4"><![CDATA[<b>应付:</b> <font color=#F09B02>¥%1$.2f</font>]]></string>
mTextView.setText(Html.fromHtml(String.format(getResources().getString(R.string.test4),23.444)));
<string name="seller_order_good_summary"><![CDATA[
共<font color=#f37214>%1$d</font>件,合计: <font color=#f37214>¥%2$.2f</font>
]]> </string>
实现的效果: