將字串抽取出成為資源,重要的能力

抽取字串成為資源

在畫面中顯示的文字資料經常會在程式中定義為字串,例如上一篇文章傳遞資料時的「BMI_EXTRA」或對話框按鈕上的文字「OK」或「確認」等字串,未來假如需要更換這些字串,除了耗費時間去找到不同類別內的字串並修改外,在程式設計時也容器發生打錯字而出現bug(臭蟲)。如果可以將字串的定義從Java類別程式碼中抽離,放在資源定義檔中(strings.xml),日後只需要修改XML資源定義檔「res/values/strings.xml」就好了。

手動加入字串資源

打開專案下的res/values/strings.xml字串資源定義檔,在根元素resources內加入一個string元素,屬性name的值代表該字串的名稱,再將字串值放在string元素中,如下定義一個名稱為「mytitle」的字串值,其字串的內容為「Bmi App」:

程式中使用字串資源

在程式碼中可使用Activity類別所提供的getString方法,快速取得在字串資源檔中的字串,專案中的所有字串資源會歸納在R.string.mytitle,如下程式碼:

//原本使用方式
//String title = "Bmi App";
//抽離為字串資源的使用方式
String title = getString(R.string.mytitle);

雖然在程式碼中改以字串資源方式取得字串時,程式碼會比較長一點,可是它所帶來的是未來能快速調整與修改的方便性,並可提高程式未來的可維護性。

提示:
在設計APP的一開始,可以不必每個字串都用資源來表示,因為有些字串在未來不一定會使用,還會經過調整。但在整個APP漸漸成型後,字串使用都較固定了後,就可以開始進行字串定義抽離了。

使用Android Studio抽離字串資源

當程式碼中已經使用了許多的字串,一個一個手動抽離成為字串資源不是太耗費時間了嗎? Android Studio能幫你快速的抽離字串。

先將游標停在欲抽離字串中任一個位置(如BMI_EXTRA字串上),按下「Alt」+「Enter」組合鍵(Mac為Option+Enter),會出現「Extract string resource」抽取為字串資源的小對話框,請再按下「Enter」,如下圖:

按下Enter後出現「Extract Resource」設定對話框,只需要為這個字串取一個資源名稱,資源名稱的命名慣例是全小寫,若有多個英文字,中間以底線表示,例如「bmi_extra」,名稱打完後請直接按下Enter完成抽取,如下圖:

原本在程式碼中的字串已自動產生getString(R.string.bmi_extra)的程式碼,如下圖:

同時字串資源檔中也自動新增一個string元素,如下:

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *