持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
1. 一般使用
在 Android 使用字符串资源,最基本的方法就是定义字符串
string 字符串标签
通过 string 标签定义文本
<string name="app_name">AppDemo</string>
代码调用:
context.getString(R.string.app_name);
string-array 字符串数组标签
通过 string-array 标签定义数组
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
代码调用:
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
2. 资源间接引用
<string name="app_name">AppDemo</string>
<string name="text">@string/app_name</string>
通过资源间接引用的方式,减少重复文案的定义,相当于给同一个文案起了个别名。
3. 使用转换符定义 String
Android 支持字符串占位符定义,比如:
<string name="format">a first num %1$s , a second num %2$s</string>
1$ 和 2$ 表示第几个字符串,%d表示十进制。如果只有一个占位,可直接将 %1$s 简化成 %s
代码调用:
mTvFormat.setText(String.format(getString(R.string.format), "one", "two"));
常用转换符如下:
| 转换符 | 说明 | 实例 |
|---|---|---|
| %s | 字符串类型 | ”string“ |
| %c | 字符类型 | ’a‘ |
| %b | 布尔类型 | true |
| %d | 整数类型 十进制 | 99 |
| %x | 整数类型 十六进制 | FF |
| %o | 整数类型 八进制 | 77 |
| %f | 浮点类型 | 99.99 |
| %a | 十六进制浮点类型 | FF.35AE |
| %e | 指数类型 | 9.38e+5 |
| %g | 通用浮点类型(f 和 e 类型中较短的) | |
| %h | 散列码 | |
| %% | 百分比类型 | % |
| %n | 换行符 | |
| %tx | 日期与时间类型(x代表不同的日期与实践转换符) |
4. html 标签
string 中可以直接放下格式化的 html 样式 如:
<string name="html"><b>注意:</b></string>
<b>表示粗体文本。<i>表示斜体文本。<u>表示 下划线 文本。
5. 使用 CDATA 实现复杂样式
<string name="reply_me"><![CDATA[回复 <span style="color:#4C4C4C">我:</span>]]></string>
或
<string name="reply_me"><Data><![CDATA[回复 <span style="color:#4C4C4C">我:</span>]]></Data></string>
代码调用:
mTvColor.setText(Html.fromHtml(getString(R.string.reply_me)));
这个例子可以定义 “我” 的颜色,除了颜色,也可以使用其他样式的标签。