Android学习–Android app 语言切换功能
更新语言:
public static void changeAppLanguage(Resources resources, String lanAtr) {
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
if (lanAtr.equals("ru_RU")) {
config.locale = new Locale("ru", "RU");
} else if (lanAtr.equals("en_US")) {
config.locale = Locale.ENGLISH;
} else if (lanAtr.equals("pt")) {
config.locale = new Locale("pt");
} else {
config.locale = Locale.getDefault();
}
resources.updateConfiguration(config, dm);
}
sharePreferences存入设置语言:
Sharences sharedPreferences = getActivity().getSharedPrefeivity().getPackageName(), 0);
sharedPreferences.edit().putString("language", lanAtr).commit();
语言更新后,对于之前出现且目前仍旧存活的activity,语言设置是不生效的。可以通过重启对应的activity,让语言及时生效。
//MainActivity是你想要重启的activity it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getActivity().startActivity(it); }
NOTE:
- 一般,从用户体验角度讲,语言设置功能入口会放在App的前几层,如果入口太深,导致用户无法快速找到语言设置入口,并且如果要讲应用重启的话,用户行为操作记录会比较麻烦。
- 重启对应Activity有几种方式:
- 如果用户进入语言设置需要太多的层级,或者在操作语言设置之前操作的其他行为,APP想保存的,那可以通过广播的方式(sendBroadcast()),语言改变时发送广播,所有activity接受到广播后(BroadcastReceiver),都进行重启操作;
- 如果允许用户设置语言后,app回到主目录,这样就简单很多,直接调用上面的restart()方法即可。
重启singleTask activity:
Intent i = new Intent(this, MainActivity.class); startActivity(i); // overridePendingTransition(0, 0); } else { //其他逻辑 } }
结束语:
Android学习–Android app 语言切换功能的更多相关文章
- 【转】Android学习系列–App离线下载功能实现
原文:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/20/2108965.html 宜未雨而绸缪,毋临渴而掘井.----朱用纯<治 ...
- Android学习之APP点击功能闪退问题的处理一
java代码如下: activity_main.xml代码如下: APP测试问题:安装好APP后,点击“点击事件”,APP会闪退 检查方向: 1.查看java代码中的成员变量textview是否初始化 ...
- Android 应用内多语言切换
最近公司的 App 里需要用到多语言切换,简单来说,就是如果用户没有选择语言选项时,App 默认跟随系统语言,如果用户在 App 内进行了语言设置,那么就使用用户设置的语言.当然,你会发现,App 的 ...
- 【转】Android 破解视频App去除广告功能详解及解决办法总结
Android 破解视频App去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频还要出现广告那就是打我脸,但是我 ...
- Android app应用多语言切换功能实现
最近在做一个多语言切换的功能,类似于微信的语言切换,搜了下资料基本上都是以下这种: 1. 实现的效果 和微信类似,在设置界面打开切换语言的界面,选择语言后重启 HomeActivity,语言切换完成, ...
- Android学习随笔--ListView的分页功能
第一次写博客,可能格式,排版什么的会非常不美观,不过我主要是为了记录自己的Android学习之路,为了以后能有些东西回顾.既然是为了学习,那我肯定会吸收各位大大们的知道经验,有不足的地方请指出. 通过 ...
- Android学习系列--App列表之拖拽ListView(下)
接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法. 在这个方法中我们主要是处理 ...
- Android学习系列--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. 一 ...
- android Viewpager禁用/开启滑动切换功能
要实现viewpager的滑动以及禁止滑动切换功能只需要继承viewpager,在onTouchEvent进行逻辑判断即可(网上搜到的,确实可行,原创地址不明),下面自己实现一个 import and ...
随机推荐
- 【windows开发实现记事本程序——界面篇】
前言 从毕业开始学习windows UI编程,工作中总是和一些API打交道,但是从没有做过一个完整的界面程序.因此打算自己利用空余时间做一个小的项目来总结自己所学的东西.在网上看到许多人建议自己动手写 ...
- How to check a not defined variable in javascript
javascript里怎么检查一个未定义的变量? in JavaScript null is an object. There's another value for things that don' ...
- ibatis ORA-00911: 无效字符
检查下xml文件中 sql的最后是不是写了 “;” 最容易犯这个毛病,都不知道吃了多少次亏了. 什么ORA-00911: 无效字符 什么The error occurred while applyin ...
- Python新手学习基础之数据结构-序列2
长度.最大值和最小值 序列类型的数据结构,常常会用到长度检查.最大最小值检查的函数. 他们的作用: len(序列):返回列表的长度(元素个数): max(序列) :返回列表中元素最大值: min(序列 ...
- 周赛D题
D - D Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description ...
- 兼容各浏览器中的PNG透明效果CSS定义
<style>.mycls{width: 48px;height: 48px;background: url(20090318230119136.png) no-repeat left t ...
- mongodb 排序 Unable to determine the serialization information for the expression 异常
好久没用mongodb了...最近又开始用起来了. 遇到情景: 2句话分开写.是正常的,因为我是先取再排序的 然而.我想直接排序出来. 就写在了一起.最后.ToList() 然后报 Una ...
- h.264码率控制
h.264的码流传输是基于目前有限的网络带宽来进行的,以目前的压缩效率来说,运动不算剧烈.细节不多的影像,在720p的情况下,1000kbps压缩损耗较少(psnr较大),能达到比较好的观赏效果,10 ...
- activitie用户手册
最近公司开发流程,学习流程开发,不停看api学习.这是做软件的额...不停的学习学习!!!天天进步中! 用户手册地址:http://www.mossle.com/docs/activiti/#acti ...
- perl 分析mysql binlog
binlog 日志格式: use `zjzc`/*!*/; SET TIMESTAMP=1476326343/*!*/; UPDATE `ProductAccess` pa SET pa.access ...