学新通技术网

【Android】 处理文本资源的几种方式

juejin 8 1
【Android】 处理文本资源的几种方式

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)));

这个例子可以定义 “我” 的颜色,除了颜色,也可以使用其他样式的标签。

本文出至:学新通技术网

标签: