我的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等。当我改变我的应用程序时,它可以工作。但是当我旋转屏幕时 - 所有资源都在变为系统默认语言
答案 0 :(得分:0)
您可以覆盖类中扩展 Application.class 的 onConfigurationChanged 方法。并设置与上面相同的 config.locale
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
/*here code to set locale*/
}
现在,当你旋转屏幕时它会正常工作。