开发手记--android布局用占位符%1$s,在开发中,如果遇到如下listview的item布局。
,以前总是把“物料名称:”作为一个TextView,后面具体值作为一个TextView。这样做使得布局变得很繁琐。后来发现可以使用占位符%1$s使其变成一个TextView,使得布局变得简单。
在strings.xml中定义物料名称:%1$s
在布局TextView中引入 android:id="@+id/tv_material_name"
style="@style/text_delivery_order"
android:text="@string/material_name"
/>
在Java代码中
tv_material_name.setText(String.format(getResources().getString(R.string.material_name),"食用油"));
下面是封装的其方法:
private String stringFromat(int sId,String str) {
if(sId == 0 || str == null)
return null;
return String.format(getResources().getString(sId),str);
}
tv_material_name.setText(stringFromat(R.string.material_name,"食用油"));
还可以添加多个占位符我叫:%1$s,我来自%2$s,我做%3$s工作
.setText(String.format(getResources().getString(R.string.my),"小明","北京","程序员");
常用的有:
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
(注:m放置空格,并不代表m是几,就是几个空格,具体看实际效果)