Android字符串资源

Android字符串资源

    • 1.文件位置:
    • 2.资源引用
      • 2.1.在 Java 中:`R.string.string_name`
      • 2.2.在 XML 中:`@string/string_name`
    • 3.语法
    • 4.字符数组
      • 4.1.文件位置:
      • 4.2.编译资源的数据类型
      • 4.3.资源引用
      • 4.4语法:
    • 5.特殊字符的处理
    • 6.设置字符串格式
    • 7.使用 HTML 标记设置样式
      • 7.1带转义实体的 HTML 标记,并在完成格式设置后通过 `fromHtml(String)` 恢复这些实体。

1.文件位置:

res/values/filename.xml
filename 是任意值。 元素的 name 用作资源 ID。

2.资源引用

指向 String 的资源指针。

2.1.在 Java 中:R.string.string_name

String string = getString(R.string.hello);

2.2.在 XML 中:@string/string_name

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

3.语法


<resources>
    <string
        name="string_name"
        >text_stringstring>
resources>

4.字符数组

4.1.文件位置:

res/values/filename.xml
filename 是任意值。 元素的 name 用作资源 ID。

4.2.编译资源的数据类型

指向 String 数组的资源指针。

4.3.资源引用

在 Java 中:R.array.string_array_name

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

在XML中:@array/string_array_name

<Spinner
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:entries="@array/string_array_name"/>

4.4语法:


<resources>
    <string-array
        name="string_array_name">
        <item>text_string1item>
        <item>text_string2item>
    string-array>
resources>

5.特殊字符的处理

字符 转义形式
@ @
? ?
< <
& &
单引号 (') 以下任意字符:
'
\'
在双引号中包括整个字符串(例如,“This’ll work”)
双引号 (") 以下任意字符:
"
\"
请注意,您必须转义双引号。在单引号中包括字符串没有任何作用。

6.设置字符串格式

如需设置字符串的格式,可以在字符串资源中放入格式参数:

Hello, %1$s! You have %2$d new messages.

格式字符串有两个参数:%1$s 为字符串,而 %2$d 为十进制数字。然后,就可通过调用 getString(int, Object...) 来设置字符串格式。例如:

String text = getString(R.string.welcome_messages, username, mailCount);

7.使用 HTML 标记设置样式

可以使用 HTML 标记为字符串添加样式设置。例如:


<resources>
    <string name="welcome">Welcome to <font color="red">Androidfont>!string>
resources>

支持以下 HTML 元素:

  • 粗体:
  • 斜体:
  • 文本放大 25%:
  • 文本缩小 20%:
  • 设置字体属性:。可能的字体系列示例包括 monospaceserifsans_serif
  • 设置等宽字体系列:
  • 删除线:
  • 下划线:
  • 上标:
  • 下标:
  • 列表标记:
    • 换行符:
    • 区隔标记:
    • CSS 样式:
    • 段落:

    7.1带转义实体的 HTML 标记,并在完成格式设置后通过 fromHtml(String) 恢复这些实体。

    (1)带样式的文本资源存储为 HTML 转义字符串:

    <resources>
      <string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.string>
    resources>
    

    带格式的字符串中添加了 `` 元素。请注意,开括号使用 < 符号实现了 HTML 转义。

    (2)然后照常设置字符串格式,但还需调用 fromHtml(String),以将 HTML 文本转换成带样式的文本:

    String text = getString(R.string.welcome_messages, username, mailCount);
    Spanned styledText = Html.fromHtml(text, FROM_HTML_MODE_LEGACY);
    

    由于 fromHtml(String) 方法会设置所有 HTML 实体的格式,因此请务必使用 htmlEncode(String) 转义带格式文本的字符串中任何可能存在的 HTML 字符。例如,如果您打算对包含“<”或“&”等字符的字符串进行格式设置,则在设置格式前必须先转义这类字符。如此一来,当通过 fromHtml(String) 传递带格式的字符串时,字符才会以最初的编写形式显示。例如:

    String escapedUsername = TextUtils.htmlEncode(username);
    
    String text = getString(R.string.welcome_messages, escapedUsername, mailCount);
    Spanned styledText = Html.fromHtml(text);
    

你可能感兴趣的:(Android开发,移动开发,字符串,html)