我有一个 Spinner
,在登录页面上可以选择三种语言。我希望当用户选择一种语言时假设“波斯语” 语言整个应用程序的语言应该改变。我只能更改当前 Activity
的语言。如何更改整个应用程序的语言。
最佳答案
在 Android 中以编程方式更改语言
以下是更改应用程序区域设置的适当方法:
要以编程方式更改语言,您必须克服一些困难。
1.)在配置更改期间关闭或重新创建后,您的应用程序将不记得您的语言更改。
2.)您应该根据所选语言适本地更新当前可见的 UI。
解决方案
“LocaleHelper
”是您所需要的全部解决方案。您只需在应用程序的主类上初始化语言环境。之后,您的所有语言更改都将持续存在。
在 Android API 版本 24 (Nougat) 最近发生变化后,我们需要覆盖 attachBaseContext 以反射(reflect)变化。
以下方法用于更改应用程序的语言:
private static boolean updateResources(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
return true;
}
在下面的链接中找到更多详细信息:
关于android - 如何通过单击更改整个应用程序的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292013/