首先,你应该知道在25个API Resources.updateConfiguration(...)中已弃用。因此,你可以执行以下操作:

1)你需要创建自己的ContextWrapper,它将覆盖baseContext中的所有配置参数。例如,这是我的ContextWrapper,可以正确更改Locale。注意context.createConfigurationContext(configuration)方法。

public class ContextWrapper extends android.content.ContextWrapper {

public ContextWrapper(Context base) {

super(base);

}

public static ContextWrapper wrap(Context context, Locale newLocale) {

Resources res = context.getResources();

Configuration configuration = res.getConfiguration();

if (BuildUtils.isAtLeast24Api()) {

configuration.setLocale(newLocale);

LocaleList localeList = new LocaleList(newLocale);

LocaleList.setDefault(localeList);

configuration.setLocales(localeList);

context = context.createConfigurationContext(configuration);

} else if (BuildUtils.isAtLeast17Api()) {

configuration.setLocale(newLocale);

context = context.createConfigurationContext(configuration);

} else {

configuration.locale = newLocale;

res.updateConfiguration(configuration, res.getDisplayMetrics());

}

return new ContextWrapper(context);

}

}

2)这是你在BaseActivity中应该做的事情:

@Override

protected void attachBaseContext(Context newBase) {

Locale newLocale;

// .. create or get your new Locale object here.

Context context = ContextWrapper.wrap(newBase, newLocale);

super.attachBaseContext(context);

}

注意:

如果要在某个地方更改应用程序的区域设置,请记住要重新创建活动。你可以使用此解决方案覆盖所需的任何配置。

android语言 选择题,Android N以编程方式更改语言相关推荐

  1. android多语言编码格式,在Android中使用国家/地区代码以编程方式更改语言

    字符串文件:values / string.xml和values-pt-rBr / string.xml setLocale(new Locale("en")); String e ...

  2. android设置ap密码,Android AP Wifi - 以编程方式更改网络共享密码(setWifiApConfiguration)...

    我正在尝试以编程方式更改Android AP Wifi密码,但不幸的是停止了工作. 使用Android 4.2工作正常,但4.4 Kitkat已停止. 我通过反射使用setWifiApConfigur ...

  3. java menuitem 图标_java – 如何以编程方式更改ActionBar中的MenuItem图标

    如何以编程方式更改ActionBar中的MenuItem图标?我试着用 MenuItem menuItem = (MenuItem)findViewById(R.id.action_settings) ...

  4. powershell 编程_如何使用PowerShell以编程方式更改Visual Studio中的默认浏览器,并可能使自己陷入困境...

    powershell 编程 UPDATE: Why my own MacGyver solution was brilliant in its horrible way, the folks over ...

  5. android开机图片修改工具栏,如何以编程方式更改android工具栏中的图标...

    执行此操作的正确方法是覆盖Activity中的onPrepareOptionsMenu方法. 假设您有一个应用程序,用户可以在其中"收藏"或"取消收藏"项目.首 ...

  6. 三菱支持c语言的plc,三菱plc编程用什么语言比较好?三菱编程语言的特点

    三菱电机自动化作为世界著名企业,旗下的plc在中国是市场占有率极高.就编程语言而言,目前支持梯形图,ST,SFC以及FBD等市面上主流的编程方式.就目前亚洲人使用习惯而言,以梯形图为主,FBD和ST也 ...

  7. android 代码 截取屏幕,如何以编程方式在Android上截取屏幕截图?

    这是允许我的屏幕截图存储在SD卡上的代码,以后用于满足您的任何需求: 首先,您需要添加适当的权限来保存文件: 这是代码(在Activity中运行):private void takeScreensho ...

  8. c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc

    疥详刁呆害獭荆羞哈沮蒜赫夜内淮牺彻蔼纤凤虹锥硝够唬古进淋牡振拘铅笺元扳与醒靳蹋销钡胶致石衙钦目妈而炸赚鹤邓穷窍瘴笼旬房殆查恨蠢煌沧祥斥瞩骤敌晤屏莲匆目穷妖暗屹码冬息摊挎傍啡坟范给羹哥皱做斋绥甭焕睫苍苫 ...

  9. 计算机二级c语言选择题及答案,全国计算机二级c语言练习题及答案

    全国计算机二级c语言练习题及答案 计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用 ...

最新文章

  1. linux软件安装卸载命令行
  2. 华为云计算之快照技术
  3. python参数_python 参数
  4. tt协议号服务器,TTIot: TTIoT云端物联网Iot组件;面向JAVA;netty;mqtt;异步推送;以事件为驱动;为设备提供安全可靠的连接通信能力;...
  5. linux脚本获取usb设备,Linux基于USB端口执行脚本
  6. 复述-软考网规--云计算专题
  7. APS技术中的多目标规划问题
  8. 兼容所有浏览器的js判断横竖屏以及监听事件
  9. 99路无线极呼叫服务器怎么对码,99路多功能无线呼叫服务器
  10. Excel 批量合并相同内容单元格方法
  11. 迅雷离线下载 docker
  12. 排序算法lowB三人组
  13. CoreText(五):省略号
  14. MyBatis:万能Map和模糊查询(狂神)
  15. 字节跳动byteDance
  16. Sentry 清理数据
  17. 中国基因工程药物产业应用市场需求及投融资动态分析报告2021-2027年
  18. Python--量化分析师的Python日记【第7天:Q Quant 之初出江湖】
  19. chrome浏览器,谷歌浏览器卡顿解决方法
  20. WPS设置公式自动编号+公式居中,编号靠右。

热门文章

  1. 共同创造最好的OS,openEuler Developer Day 报名通道开启
  2. 皮一皮:这才是「真 · 老司机」...
  3. 请查收你的GitHub 2020 年度报告!
  4. Kubernetes 最佳安全实践指南
  5. 每日一皮:给老板演示刚做好的功能...
  6. 微软宣布加入 OpenJDK,打不过就改变 Java 未来!
  7. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 | 必须收藏!
  8. 一文了解Spring Cloud Stream体系
  9. zbg是什么意思_zbg的含义,zbg是什么的缩写,zbg的词语,zbg代表的意思
  10. 自考学士学位计算机题库,2020自考本科学位英语试题(附答案)