安卓应用内语言切换

最近的项目中有个需求要在商品售卖页面进行中英文切换,自己想了一个解决方案。

1.配置中英文对应的values(安卓只有在找不到对应语言下的string.xml才会去默认的values/string.xml中找)

2.使用SharedPreferences来记录当前应用保存的语言,进入应用时恢复上次保存的语言。

3.点击商品是切换语言(需要重建页面,否则不生效)。


注:Locale.getDefault().getLanguage()。  该方法为获取系统语言,对于应用内切换不适用。

关于切换配置来改变应用语言的核心代码其实就下面几句:


Configuration config = getResources().getConfiguration();//获取配置

String language = config.locale.getLanguage();//获取当前语言

config.locale = Locale.ENGLISH;//根据当前语言来判断,并更改当前语言

getResources().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());//更新配置

recreate();//重启activity


下面就是我自己应用的实现了,点击切换语言:

changeConfig:

自己想的拙计- -!如果有好的建议欢迎留言。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 最近公司的 App 里需要用到多语言切换,简单来说,就是如果用户没有选择语言选项时,App 默认跟随系统语言,如果...
    牙锅子阅读 7,105评论 0 20
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,537评论 1 92
  • 我很喜欢书,可是一看书就想睡觉,不过貌似这也是有好处的,起码从不会失眠。 我特别地喜欢文字,喜欢这随意组合的文字中...
    来自星星的语言阅读 354评论 0 1