我的库中没有为Android应用更新语言环境

时间:2014-11-21 07:26:03

标签: android android-activity sharedpreferences locale setlocale

我有一个拥有核心和库的项目

我在核心项目中的运行时更改了我的语言环境。

问题是,在图书馆项目中有一个

Locale.getDefault(); 

仅返回设备的区域设置,但不返回应用的区域设置。这意味着,当我在我的应用程序中将语言环境更改为法语时,如果我的设备使用英语,则通过库项目获取的语言环境仍为英语。怎么解决?感谢

1 个答案:

答案 0 :(得分:1)

您可以更改默认语言区域。

您可以尝试使用以下代码:

Locale locale = new Locale("fr"); //if you want to change to French
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
      getBaseContext().getResources().getDisplayMetrics());

或制作语言环境设置器方法:

 public void setLocale(String newLocale) {
    Locale locale = new Locale(newLocale);
    Locale.setDefault(locale);

    Configuration config = new Configuration();
    config.locale = locale;

    context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics() );
 }