从应用语言(不是系统语言)中选择资源

时间:2015-11-16 11:41:51

标签: android android-resources

我的Android应用程序有自己的语言,可能与设备系统语言不相同。对于ex - MyApp有'ru'语言,但手机已经'en'lang。 我可以使用应用程序来获取我的应用程序语言区域设置资源,而不是系统语言吗?

PS - 我的应用语言我改变了这段代码:

public static void setLocale(String language) {
        Locale locale = new Locale(language);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        SvoApplication.getContext().getResources().updateConfiguration(config,
                                                                       SvoApplication.getContext()
                                                                                     .getResources()
                                                                                     .getDisplayMetrics());
        SharedPreferencesManager.setCurrentLanguage(language);
    }

从db获取的所有数据都是通过app语言的sharedPref值进行本地化

PPS - 据我所知,我必须使用strings-en.xml / strings-ru.xml等。当我改变我的应用程序时,它可以工作。但是当我旋转屏幕时 - 所有资源都在变为系统默认语言

1 个答案:

答案 0 :(得分:0)

您可以覆盖类中扩展 Application.class onConfigurationChanged 方法。并设置与上面相同的 config.locale

public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);
        /*here code to set locale*/
}

现在,当你旋转屏幕时它会正常工作。