如何以编程方式从资源加载替代strings.xml

时间:2015-02-03 17:23:43

标签: android localization

我想提供三种不同的语言。默认语言是英语,因此values文件夹中的所有字符串值都是英语。我创建了另外两个文件夹

  • 用于德语的values-de
  • 中文的values-cn

每个文件夹都包含一个strings.xml文件,其中我为de文件夹定义了德语的值,为cn文件夹定义了中文的值。

我现在的问题是:如何以编程方式加载其他语言,因为我想在我的应用界面中提供用户可以切换语言的按钮。设备的设置无法为我们的用户编辑。我们的用户只能看到应用程序本身,而不是其他任何东西,所以我必须在我的应用程序中提供语言切换。

1 个答案:

答案 0 :(得分:2)

您可以在运行时更改配置

在活动的onCreate中执行此操作

String languageToUse  = "de"; // The language you want to change
Locale locale = new Locale(languageToUse); 
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, 
      getBaseContext().getResources().getDisplayMetrics());