在开发项目中,大多会因为时间不宽裕,造成代码优化不足,如共性的string,color,style没有抽取,而本文讲到的就是string的一个抽取技巧和格式。
代码中:
//通写方式,平常我们已字符串形式拼接
mPeople.setText(i + "人觉得有用");
一般抽取(常规):
<string name="dis_num">人觉得有用</string>
展示形式:
mPeople.setText(i + R.string.dis_num);
以上的方式我们固然没有问题,但是部分时候会有(Do not concatenate text displayed with setText,use resource string with placeholders)占位符提示警告,同时拥有强迫症的,肯定想用到更优的方式!请看以下方式!
抽取string:
<string name="dis_link_num">%1$d人觉得有用</string>
展示形式:
mPeople.setText(String.format(getResources().getString(R.string.dis_link_num), i ));
如多个抽取,占位符使用方式(也是一个拼接形式,只不过是内部拼接):
<string name="dis_link_num">%1$d人%2$d虎%3$d神仙</string>
格式讲解(这里要注意你的类型!!!):
%ns−−−>n表示目前是第几个参数(比如s--->n表示目前是第几个参数 (比如%1s−−−>n表示目前是第几个参数(比如s中的1代表第一个参数),s代表字符串
%nd−−−>n表示目前是第几个参数(比如d--->n表示目前是第几个参数 (比如%1d−−−>n表示目前是第几个参数(比如d中的1代表第一个参数),d代表整数
%nf−−−>n表示目前是第几个参数(比如f--->n表示目前是第几个参数 (比如%1f−−−>n表示目前是第几个参数(比如f中的1代表第一个参数),f代表浮点数
string的一切命名规范(格式)
Toast类型:
<string name="toast_question">请说明您要提出的问题!</string>
Title类型:
<string name="title_home">首页</string>
Tab类型:
<string name="tab_gossip">汽车百科</string>
Text展示类型:
<string name="dis_answer">回答</string>
Edit编辑类型:
<string name="et_name">请输入您的姓名</string>