抽取字串成為資源
在畫面中顯示的文字資料經常會在程式中定義為字串,例如上一篇文章傳遞資料時的「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元素,如下: