少年乘勇气,百战过乌孙。这篇文章主要讲述为什么在Android 5.0.2中I18n不工作?相关的知识,希望能为你提供帮助。
我希望将语言更改为英语,但是当它是android 5.0.2手机时它不起作用。当它是android 7.1.1时它是正常的。这是我的代码:
public static void applyLanguage(Context context, String newLanguage) {
if (StringUtil.isEmpty(newLanguage)) {
return;
}
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
Locale locale = SupportLanguageUtil.getSupportLanguage(newLanguage);
if (Build.VERSION.SDK_INT >
= Build.VERSION_CODES.N) {
configuration.setLocale(locale);
createConfigurationResources(context, newLanguage);
} else {
if (Build.VERSION.SDK_INT >
= Build.VERSION_CODES.JELLY_BEAN_MR1) {
configuration.setLocale(locale);
}else {
configuration.locale = locale;
}
DisplayMetrics dm = resources.getDisplayMetrics();
resources.updateConfiguration(configuration, dm);
}
}
但是在英语默认语言环境中,我通常会将其更改为中文。这很奇怪。有人遇到过这个问题吗?
答案【为什么在Android 5.0.2中I18n不工作()】我通过将Locale.ENGLISH更改为Locale.US解决了这个问题,因为我设置了美国的语言资源。
推荐阅读
- 基于android上的用户区域设置的日期格式
- Appdynamics 4.2和4.3中的Lambda表达式支持
- 如何修复Cordova(Android)构建问题(install_failed_update_incompatible)
- 如何在Android的”打开方式”菜单中列出你的cordova应用并处理Intent事件
- 如何在Android的Cordova插件中获取上下文
- 如何知道你的应用程序是否在Cordova或Web浏览器中运行
- 如何在Cordova应用程序中检索网络(互联网连接)信息
- 如何将JSON对象从Java返回到javascript(cordova)
- 如何使用Cordova从设备上的base64字符串中保存PDF