最好不要重用字符串
假设在登录和注册界面都有一个加载框,你如果使用同一个字符串R.string.loading:
之后你又决定使用不同的字符串来区分登录和注册,那么你不得不新建两个字符串,并且在相应Java代码修改。 如果一开始就使用两个不同的字符串,那么就在strings.xml文件修改就行了。

用标识区分字符串名字
通过前缀或者注释来区分一下哪些字符串是在同一个页面的。
通过这样可以很快的识别出当前字符串属于哪个页面,清晰的标识也更易于维护和翻译成不同的语言。
格式化字符串
千万不用通过“+”运算来连接字符串产生新的字符串来使用,因为翻译成其他语言后,有时(其实是大多数情况)会狗屁不通。正确的方法是用Resources#getString(int id, Object… formatArgs)。
再举个例子:
<string name="today_state_string">您正与%1$d位朋友在跑步,本周排名提升了%2$.3f,获得%3$s勋章,等级为%4$c!</string>
从上面这行字符串的定义可以看出,格式化字符串资源的格式为:
%+参数位置+$+格式化类型,其中:
参 数 位 置:从1开始依次编号,String.forma方法的第二个参数为格式化的第一个参数,后面依次递增;
格式化类型:
s 字符串
f 浮点数
d 整型数
c 字符类型
处理单复数
最好不用在Java代码中处理单复数,因为不同的语言有不同的单复数规则,我们一般都是这样处理:正确的做法是使用Resources#getQuantityString (int id, int quantity)。
词语的高亮处理
如果要改变TextView里的一些词语的颜色,ForegroundColorSpan并不总是最好的选择,最好使用HTML字体颜色标记你的strings.xml。比如你想把Discover and play games.” 里的“Discover” 和 “play” 显示为蓝色,那么你可以这样:
还支持<b></b>加粗字体, <i></i> 斜体字体,<u></u> 给字体加下划线等标签。
数组
有时需要一个数组内容来给用户选择或者提示,为了使用和翻译方便,也可以写在strings.xml文件。<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
然后在Java代码中获取:
String[] planets = getResources().getStringArray(R.array.planets_array);