对于我在Android Studio中制作的移动应用程序,我希望用户可以更改应用程序的语言。这个想法如下:我有多个strings.xml文件(针对不同的语言),我想在语言改变时切换到特定的文件(例如,如果语言改为德语,切换到文件strings.xml(de) ))。但是,我似乎无法找到一种以编程方式切换到另一个strings.xml文件的方法。我可以在网上找到的唯一解决方案是更改系统的语言环境,但我宁愿避免使用此选项。有没有办法以编程方式更改strings.xml文件,而不更改区域设置?
提前致谢!
答案 0 :(得分:1)
我使用了updateConfiguration方法,感谢Sergey Glotov的链接:
Locale locale2 = new Locale("en");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(
config2,getBaseContext().getResources().getDisplayMetrics());
所以现在应用程序正在使用string-en资源文件! :d
然而,Resources.getSystem().getConfiguration().locale.getDisplayLanguage()
是"法语"所以我的地方不会改变。那是你想要的吗?
答案 1 :(得分:0)
我建议使用Android-LocalizationActivity库。
该库使得在运行时更改应用程序语言变得非常简单。您的所有活动都需要实施LocalizationActivity
,其范围为AppCompatActivity
。之后,您可以拨打setLanguage("en");
来切换应用中使用的语言
可以在github页面找到包含以下示例代码和更多信息的示例项目。
this question也可能包含一些有用的答案。