【问题标题】:How to change Locale without re-launching application?如何在不重新启动应用程序的情况下更改语言环境?
【发布时间】:2016-10-14 16:45:05
【问题描述】:
基本上我想做的是,
我从MainActivity(activity_main) 开始转到SettingActivity(activity_setting) 并从给定的选项(如法语、英语、荷兰语等)更改我的语言环境
所以到目前为止我所做的是......
OnClick 的语言名称它重新创建 SettingActivity(activity-setting) 并根据所选语言更改它的 string 值。
我真正想要的是无需重新创建 Activity,所有string 值都应根据所选语言应用。
非常感谢所有建议和答案。
提前谢谢你。
【问题讨论】:
标签:
android
android-activity
【解决方案1】:
只需先更改语言属性。
然后调用一个新函数,将 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?