Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android旋轉屏幕後國際化語言失效的解決辦法

Android旋轉屏幕後國際化語言失效的解決辦法

編輯:關於Android編程

本文已同步至個人博客:liyuyu.cn

最近在項目中使用到了國際化多語言(英文+中文),但在使用時發現了一個問題,當屏幕旋轉後,APP語言(中文)自動轉換為了系統語言(英文),設置了Activity的android:configChanges="orientation|screenSize"屬性也無效,於是求助Stackoverflow,你懂的,最後問題解決了,於是整理了此文以作參考。

1.新建FunctionApplication類繼承Application,覆寫onConfigurationChanged,代碼如下:

public class FunctionApplication extends Application{
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);
        toChinese();
    }
 
    public void toChinese()
    {
        String languageToLoad  = "zh"; 
        Locale locale = new Locale(languageToLoad);  
        Locale.setDefault(locale);  
        Configuration config = getResources().getConfiguration();  
        DisplayMetrics metrics = getResources().getDisplayMetrics();  
        config.locale = Locale.SIMPLIFIED_CHINESE;  
        getResources().updateConfiguration(config, metrics); 
    }
}
2.修改AndroidManifest.xml文件,application節點指定為我們自定義的FunctionApplication

 
至此,旋轉屏幕後語言失效的問題就可解決了。查閱了相關資料,發現在屏幕旋轉時觸發onConfigurationChanged(Configuration newConfig)方法時,這個newConfig取的是系統的,這就是為什麼語言會切換到系統語言的原因,所以在這裡我們再次設定下locale就可以了。


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved