如何以编程方式从资源中加载备选 strings.xml
How to load alternative strings.xml from resources programmatically
我想提供三种不同的语言。默认语言是英语,所以我在 values
文件夹中的所有字符串值都是英语。我创建了另外两个文件夹
- 德语的 values-de
- 中文值-cn
每个文件夹都包含一个 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());
我想提供三种不同的语言。默认语言是英语,所以我在 values
文件夹中的所有字符串值都是英语。我创建了另外两个文件夹
- 德语的 values-de
- 中文值-cn
每个文件夹都包含一个 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());