標籤:android java 檔案 io re c cti html
最近項目中用用到語言切換功能,第一想到的就是資源檔,沒錯。
在資源檔中建立一個檔案夾values-en,en表示英語,有一些還細化到地區,如values-en-rUS 即美國地區的英語,r是必需的。在裡面建立一個strings.xml,把預設values檔案夾中的strings.xml中的內容Copy至values-en中的strings.xml,再把該檔案夾中的中文內容轉換為英文,例如<string name="set">設定</string>轉換為<string name="set">set</string>。不止values檔案可以這樣,res檔案夾下的都可以,但是assets就不行,這是外部檔案。如果有做webapp引用網頁形式 考慮多語言版本,可以java代碼判斷系統語言,再去調用相應的html檔案。
然後再主Activity中寫一個方法
代碼:
public void switchLanguage(Locale locale) {
//應用內配置語言
Resources resources =getResources();//獲得res資來源物件
Configuration config = resources.getConfiguration();//獲得設定對象
DisplayMetrics dm = resources.getDisplayMetrics();//獲得螢幕參數:主要是解析度,像素等。
config.locale = Locale.SIMPLIFIED_CHINESE; //簡體中文
resources.updateConfiguration(config, dm);
}
有一些相對不那麼常用的語言Locale沒提供相應的常量,這時
如阿拉伯語,直接config.locale =new Locale("ar");
必須在OnCreate函數中調用
還得注意的是:在AndroidManifest.xml中要配置一下
在activity節點中加上這個屬性: android:configChanges="locale"
添加許可權: <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />