如何以编程方式从资源中加载备选 strings.xml

How to load alternative strings.xml from resources programmatically

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

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

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

您可以在运行时更改配置

在 activity

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());