Android基礎知識之String類使用詳解

原文:http://android.eoe.cn/topic/android_sdkhtml

字符串資源爲你的應用程序提供了能夠選擇的文本樣式和格式的文本。這裏有三種類型的資源能夠爲你的應用程序提供字符串。java

String
:XML資源提供單個的字符串
String Array
:XML資源提供字符串數組
Quantity Strings (Plurals)
:XML資源爲不一樣數量的詞或者語句攜帶不一樣的字符串。
全部的字符串都能使用一些樣式標記和格式化參數。關於樣式和格式的字符串的信息,請看Formatting and Styling那一部分。android

String

單個的字符串能夠從應用程序或者其餘的資源文件(好比XML佈局)中引用。

:注意:一個字符串是一個簡單的資源,引用的是提供的值的名稱屬性(而不是XML的文件名)。 因此, 你能夠將字符串資源和其餘資源放在同一個XML文件元素中。數組

文件地址:
:res/values/filename.xml
:文件名是任意的。元素的名字將會當作資源的ID。
編譯以後的資源數據類型:
:指向String的指針
資源引用
:Java:R.string.string_name
:XML:@string/string_name
語法:
<?xml version"utf-8"?>

text_string

元素:
:
:必須有,必須是根節點。
:沒有屬性。

:字符串,能夠包含樣式的標籤。注意不要包含引號。更多的信息關於如何正確的風格和格式字符串Formatting and Styling請看下面。
:屬性:
:name
:字符串。字符串的名字。將會做爲資源的ID。
例子:
:XML文件保存在 res/values/strings.xml:
<?xml version"utf-8"?>

Hello!

:這個XML佈局文件將會做爲View的String。

:程序的代碼使用String
String string = getString(R.string.hello);
:你既可使用getString(int)或者getText(int)得到字符串。getText(int)將會保持富文本的樣式應用到字符串。ide

String Array

可以被應用程序引用到的字符串數組。
:注意:一個字符串數組是一個簡單的資源,引用的是提供的值的名稱屬性(而不是XML的文件名)。 因此, 你能夠將字符串數組資源和其餘資源放在同一個XML文件元素中。
文件位置:
:res/values/filename.xml
:文件名是任意的。元素的名字將會做爲資源的ID。
編譯以後的數據類型:
:指向字符串數組的資源指針。
引用方法
:Java:R.array.string_array_name
語法:
<?xml version"utf-8"?>


text_string


元素:
:
::必須有,並且是根節點。
::沒有屬性。
:
::定義一個字符串數組,包含一個或多個元素。
::屬性:
::name:
:::類型是字符串,字符串的我名字。name會當作引用數組的資源ID。
::
::字符串類型,能夠包含樣式的標籤。它的值可使其餘字符串資源的引用。必須是元素的子標籤。注意不要包含省略號和引號。看 Formatting and Styling,關於恰當的樣式和格式你的字符串信息。
::沒有屬性。
例如:
:保存在res/values/strings.xml下的文件:
<?xml version"utf-8"?>


Mercury
Venus
Earth
Mars


:應用程序使用下面的方法得到字符串數組:
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);佈局

Quantity Strings (Plurals)

不一樣的語言有不一樣的規則語法協議數量。在英語中,例如,數量1是一個特例。咱們寫「1 book」,但對其餘任何數量咱們寫「nbooks」。這個區別是很常見的單數和複數,但其餘語言使更微妙的差異。android支持的所有集合是zero,one,two,few,many,和other。
這種狀況下的規則來決定使用一個給定的語言和數量可能很是複雜,所以Android爲你提供了方法如getQuantityString()來選擇適當的資源。
請注意,選擇是基於語法的必要性。一個字符串爲零在英語將被忽略,即便數量是0,由於0不是語法不一樣於2,或任何其餘數字除了1(「zero books」、「one book」,「two books」,等等)。不要被事實誤導,好比,two個聽起來像它可能只適用於數量2:一個語言可能會須要,2,12 102(等等)都像對待對方,但不一樣於其它的數量。其實是依靠你的翻譯瞭解他們的語言上的區別。
這是常常能夠避免使用數量中性數量字符串劑型,如「Book:1」。這將使你的生活和你的譯者的生活更簡單,若是它是你的應用程序保持的風格。

:注意:一個複數的集合是能夠被值得name所引用的簡單資源(不是XML文件的名字)。因此你能夠將複數資源和簡單資源放在同一個XML文件中。放到 元素下。

文件位置:
:res/values/filename.xml
:文件名是任意的。元素的name做爲資源的ID。
資源引用:
:Java: R.plurals.plural_name
語法:
<?xml version"utf-8"?>


text_string


元素:
:
::必需要有,必須是根節點。
::沒有屬性。
:
::字符串的集合。其中,一個字符串提供了根據數量的東西。
::包含一個或者多個元素。
:
::單個或者多個字符串。它的值可使其餘字符串資源的引用。必須是元素的子節點。不能包含省略號和引號。看下面的 Formatting and Styling,關於你的字符串正確的樣式和格式。
::屬性:
:::quantity
::::關鍵字,當一個值要被使用時的指示。有效的值,大概以下所示。
<!-- 表格開始 -->
{|style="border-spacing: 0px;margin: 4px 4px; width: 90%; border-left:1px solid #ccc;border-top:1px solid #ccc; "ui

<!-- 這段是表頭 -->
|-style="background:#DEE8F1; "
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | 值
! style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px" | 描述spa

<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
zero
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
當某一種語言須要特殊的對待數字0(好比阿拉伯語)翻譯

<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
one
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
當某種語言須要特殊的對待數字1(就像英語中的1和許多其餘語言;在俄語中,全部以1結尾可是不是以11結尾就是這種狀況)
<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
two
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
當某種語言須要特殊的對待數字2。(好比威爾士語)指針

<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
few
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
當某種語言須要特殊的對待數量不多的數字(好比2,3,4在捷克語中,以2,3,4但不是12,13,14結尾的波蘭語中)。
<!-- 這段是表格 -->
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
many
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
當某種語言須要特殊的對待」大「數字(好比數字以11-99結尾在馬耳他語中)。
<!-- 這段是表格 -->
|- style="vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px;" |
other
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px;" |
當某種語言不須要特殊的對待所給出的數字。

|}<!-- 表格結束 -->例如::XML文件保存在res/values/strings.xml:<?xml version"utf-8"?>One song found.%d songs found.:XML文件保存在res/values/strings.xml:<?xml version"utf-8"?>Znaleziono jedn

相關文章
相關標籤/搜索