如何在不重新启动应用程序的情况下更改Locale?

时间:2016-10-14 08:36:32

标签: android android-activity

基本上我要做的是,

我从MainActivity(activity_main)开始转到SettingActivity(activity_setting)&从给定的选项(如法语,英语,荷兰语等)改变我的语言环境

所以我到现在所做的是......

OnClick语言名称重新创建SettingActivity(activity-setting)&根据所选语言更改string值。

我真正想要的是在不重新创建活动的情况下,应根据所选语言应用所有string值。

所有建议&答案非常感谢。 先谢谢你。

1 个答案:

答案 0 :(得分:0)

首先只需更改语言属性即可。 然后调用一个新函数,将UI中显示的所有字符串设置为正确的语言。

伪代码:

TextView myTextView = (TextView) findViewbyId(R.id.tv1);
myTextView.setText(yourCustomGetLocaleFunction("some id of the string you want to display", "some language name"));

但那是一种糟糕的做法。你应该让Android处理你的应用程序的语言。只需本地化strings.xml文件(您可以从代码中加载文件中的字符串)。

编辑:

要暂时更改应用的语言,您可以使用此解决方案中的代码: How to change android app language without changing phone language?