A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linxy06 中级黑马   /  2015-11-25 00:43  /  660 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一步、使用Android开放的api更改Configuration,同时把语言类型保存下来

file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image0016ac72331-10db-441d-bbfa-7411e68db7d3.png

第二步、Destroy当前页面,重新绘制才能更改语言类型

file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image00264953521-b444-4128-97a1-4cc6eddcf9c0.png

如果你的页面不是首页,你调用上述代码只会更新当前页面,压在栈中的Activity依然不会更新界面。比如微信设置语言成功后,会自动跳转到首页,当然首页的内容也是更新后的,它的实现方式也很简单,与我们上面写的大同小异。就是监听设置成功后,destroy所有存在的页面,再跳转到首页。这时你的app就能满足了上面的需求了,可是别急还有第三步。

第三步、只要你的应用不彻底从Dalvik或者ART中彻底移除,上述都没问题。但是如果重新开机,或者强制杀掉应用,再次启动,就恢复到以前的语言类型了。

file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image003f5d0d450-8559-459e-be8e-1d68ce828252.png

这会我们就用到第一步中保存的语言的类型了,在所有页面的基类BaseActivity中,每次都调用下语言设置的方法,这样就能把页面给强制设置成业务需求的语言类型了。OK,这个问题就完满解决了,要为你的APP添加这个功能的话,对代码的改动是非常小的。下面附上代码地址:https://github.com/JackCho/SwitchLanguageDemo

git地址:https://github.com/JackCho/SwitchLanguageDemo.git

如果觉得对你有所帮助,欢迎大家订阅我的微信公众账号——Android干货分享。下面是微信的二维码,为你提供及时高质的Android干货。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马