Resources類中getString (int ResID)與getText (int ResID)的區別

pan_jinquan發表於2015-07-19

Resources類中getString (int ResID)與getText (int ResID)的區別

getString (int ResID)和getText (int ResID)都是Resources類中方法,都是獲取資原始檔中的字串資料。

  • getString (int ResID):是獲得資原始檔的字串資源(XML檔案中String子元素定義的String資源),但是沒有任何的文字顯示樣式的,其僅僅是獲取字串的值而已。
  • getText (int ResID):也是獲取XML檔案中String子元素定義的String資源,與getString()方法不同的是,getText()返回的字串包含文字的格式資訊。

下面先看看二者在API的定義:

(1)public CharSequence getText (int ResID)

Return the string value associated with a particular resource ID. The returned object will be a String if this is a plain(簡單的、平的) string; it will be some other type of CharSequence if it is styled.

返回與特定資源ID相關聯的字串值。如果是無格式的字串,則返回的是字串物件,如是格式的字串,則將返回CharSequence 其他型別。

  • 引數說明:

ResIDThe desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier.

  • 返回值:

CharSequence The string data associated with the resource, plus possibly styled text information.(與資源想關聯的字串資料和可能有的文字資訊樣式)

 (2) public String getString (int ResID)

Return the string value associated with a particular resource ID. It will be stripped of(剝奪) any styled text information.

返回與特定資源ID相關聯的字串值。返回的字串值被去除了全部文字資訊的樣式

  • 引數說明:

ResID The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier.

  • 返回值:

String :The string data associated with the resource, stripped of styled text information.

(3) getString (int ResID)與getText (int ResID)的區別

二者都是在Resource類中的定義的方法,都是獲取資原始檔中的字串資料。

  • getString (int ResID):是獲得資原始檔的字串資源(XML檔案中String子元素定義的String資源),但是沒有任何的文字顯示樣式的,其僅僅是獲取字串的值而已。
  • getText (int ResID):也是獲取XML檔案中String子元素定義的String資源,與getString()方法不同的是,getText()返回的字串包含文字的格式資訊。

例如:

Strings.xml檔案內容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="demo">  <b>demo</b> </string>
</resources>

在主程式中的主要語句:

CharSequence chs = getText(R.string.demo);  //包含文字的樣式資訊
String str = getString(R.string.demo);  //沒有任何的文字樣式資訊
Text1.setText(chs);  
Text2.setText(str);

執行結果如下:


相關文章