Android應用內部實現多語言,一鍵切換語言,國際化適配


1.首先提供多語言對應的string值  如en對應英語, fr對應法語

 

 

 兩個文件中包含同樣的key, 對應不同的語言的value

2.java代碼相應用戶切換語言動作

 private static void setAppLanguage(Context context, Locale locale) {
        Resources resources = context.getResources();
        DisplayMetrics metrics = resources.getDisplayMetrics();
        Configuration configuration = resources.getConfiguration();
//Android 7.0以上的方法
        if (VERSION.SDK_INT >= 24) {
            configuration.setLocale(locale);
            configuration.setLocales(new LocaleList(locale));
            context.createConfigurationContext(configuration);
//實測,updateConfiguration這個方法雖然很多博主說是版本不適用
//但是我的生產環境androidX+Android Q環境下,必須加上這一句,才可以通過重啟App來切換語言
            resources.updateConfiguration(configuration, metrics);

        } else if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
//Android 4.1 以上方法
            configuration.setLocale(locale);
            resources.updateConfiguration(configuration, metrics);
        } else {
            configuration.locale = locale;
            resources.updateConfiguration(configuration, metrics);
        }
    }

3. 將用戶選擇保持到SharedPrefrence中, 通過在BaseActivity中來設置切換的動作

需要注意:在手動觸發切換動作后, 需要退出所有的Activity, 重新啟動,才會生效

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM