Android 开发中应该知道的关于strings.xml的事
来源:互联网 发布:仙侠网络 编辑:程序博客网 时间:2024/06/03 09:37
Android 开发中应该知道的关于strings.xml的事
避免过度复用
不要复用不同页面上的字符串
1.假设你现在在Sign In与Sign Up两个界面上都设置了一个加载提示框,因为两个都是用于提示正在加载中的,因此你打算使用相同的提示语 —— R.string.loading
<string name="loading">Loading please wait…</string>
不过后来PM说这样实在太不友好了,因此你打算用两个更具体点的提示语来代替,于是你你将你的strings.xml
修改成了下面这样
<string name="sin_in_loading">Signing in…</string><string name="sin_up_loading">Signing up…</string>
合理分割
对于相同页面中的字符串以前缀与注释分割
1.添加前缀到字符串上有助于辅助快速地识别字符串是属于哪个页面的。
2.清晰的字符串的区分也有助于未来对国际化的支持,可以按照页面来逐个地进行多语言支持。
Format
使用
Resources#getString(int id, Object...formatArgs)
来格式化字符串
尽量避免使用+
来连接字符串,因为在不同的语言里对于词汇的划分是不一致的。
<string name="login_welcome_back">- welcome back</string>
String username="Xxx Xxx";String result=username+" "+getString(R.string.login_welcome_back);//result "Xxx Xxx - welcome back"
正确的方法是使用Resources#getString(int id, Object… formatArgs).
<string name="login_welcome_back">%s - welcome back</string>
String username="Xxx Xxx";String result=getString(R.string.login_welcome_back,username);//result "Xxx Xxx - welcome back"
Plurals:复数处理
使用Resources#getQuantityString (int id, int quantity)来处理复数字符串
尽量不要在Java代码中判断是否需要使用复数表述,同样是因为不同的语言对于复数表述的文法规则是不一样的。
<string name="minute">minute</string><string name="minutes">minutes</string>
String text;int minutes = Calender.getInstance().get(Calender.MINUTE);if(minutes == 0){ text = getString(R.string.minute);}else{ text = getString(R.string.minutes);}
正确的方法是使用Resources#getQuantityString (int id, int quantity)
来进行处理
<plurals name="minutes"> <item quantity="one">minute</item> <item quantity="other">minutes</item></plurals>
int minutes = Calender.getInstance().get(Calender.MINUTE);String text=getResources().getQuantityString(R.plurals.minutes,minutes);
Words highlighting:单词高亮
使用HTML文法规范来进行单词高亮
如果我们希望在TextView
中修改一些单次的颜色,可能ForegroundColorSpan
不一定是最佳的选择,同样是因为基于下标的高亮策略可能在不同的语言中出现问题。最好的呢,也还是使用HTML的字体颜色标签进行控制,譬如你希望在Discover and play games
这一段话中需要将Discover
与play
进行高亮展示:
<string name="html_text" formatted="false"><![CDATA][<font color=\'#28b5f5\'>Discover</font> and <font color=\'#28b5f5\'>play</font> games.]</string>
- Android 开发中应该知道的关于strings.xml的事
- Android开发,关于aar你应该知道的
- Android开发,关于aar你应该知道的
- 关于Android strings.xml-你应该了解的几个原则
- 关于Android strings.xml-你应该了解的几个原则
- Android 中关于XLIFF你应该知道的知识点
- Android 开发中应该知道的一些小技巧
- Android开发,你应该知道的
- Android开发,你应该知道的
- 关于J2ME,应该知道的事
- 关于获取 Android 中从res/values/strings.xml 应用名称的 字符串
- 关于[Android] strings.xml的使用方法几例
- 关于Android中的strings.xml的一些其他用法
- Android ListView一些应该知道的事
- Android Notification 你应该知道的事
- Android关于销毁你所应该知道的
- 关于Android屏幕适配应该知道的一些知识
- 关于Android内存优化你应该知道的一切
- PHP JSON乱码简洁的解决办法
- opencv 应用领域
- 数据挖掘学习:站在巨人的肩膀上
- HDU 1997 汉诺塔VII
- String类中常用方法归纳
- Android 开发中应该知道的关于strings.xml的事
- 解决安卓webview不支持input type=file问题
- windows下的zookeeper
- LeetCode题解-222-Count Complete Tree Nodes
- Swift 中UIWebView 和 UINavigationController的应用
- oracle行转列
- spring笔记——bean的生命周期
- HDOJ 2199 Can you solve this equation?(二分)
- 云端基于Docker的微服务与持续交付实践