Android允許定義多個字串資源檔在res/values 中
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World!</string> <string name="app_name">App Name</string></resources>
當在此建立或修改資源檔時,ADT都會自動更新R.java ,併產生唯一的標識符來標識,如:
public static final class string {public static final int app_name=0x7f040004;public static final int hello=0x7f040003;}
在程式中使用資源就可以用R.string.hello來標識字串了,並可用Activity中的getText(R.string.hello)直接轉成字串
特殊格式字串
代碼
<resources>
<string name="java_format_string">
hello %2$s java format string. %1$s again
</string>
<string name="tagged_string">
Hello <b><i>Slanted Android</i></b>, You are bold.
</string>
</resources>
這裡的特殊格式字串指的是帶參數的格式字串,及帶有HTML標籤的字串。
讀取操作可以這樣
代碼
//Read a Java format string
String javaFormatString = activity.getString(R.string.java_format_string);
//Convert the formatted string by passing in arguments
String substitutedString = String.format(javaFormatString, "Hello" , "Android")
//set the output in a text view
textView.setText(substitutedString);
//Read an html string from the resource and set it in a text view
String htmlTaggedString = activity.getString(R.string.tagged_string);
//Convert it to a text span so that it can be set in a text view
//android.text.Html class allows painting of "html" strings
//This is strictly an Android class and does not support all html tags
Spanned textSpan = android.text.Html.fromHtml(htmlTaggedString);
//Set it in a text view
textView.setText(textSpan);
支援多國語言
要讓應用程式支援多個語言介面,並不需要重新定義介面。只需要添加一個語言資來源目錄放置相應的字串資源檔 如:res/values-en 表示英文字串 ,res/values-zh-rCN表示簡體中文 res/values-zh-rTW表示繁體中文。
進入“設定”程式,選擇“地區和文本”,可以選擇對應的語言測試。