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

來源:互聯網
上載者:User

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就可以了。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.