Android旋转屏幕后国际化语言失效的解决的方法
本文已同步至个人博客:liyuyu.cn
近期在项目中使用到了国际化多语言(英文+中文),但在使用时发现了一个问题。当屏幕旋转后。APP语言(中文)自己主动转换为了系统语言(英文)。设置了Activity的android:configChanges="orientation|screenSize"属性也无效。于是求助Stackoverflow,你懂的,最后问题攻克了。于是整理了此文以作參考。
1.新建FunctionApplication类继承Application。覆写onConfigurationChanged。代码例如以下:
public class FunctionApplication extends Application{
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);
        toChinese();
    }
    public void toChinese()
    {
        String languageToLoad  = "zh";
        Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        Configuration config = getResources().getConfiguration();
        DisplayMetrics metrics = getResources().getDisplayMetrics();
        config.locale = Locale.SIMPLIFIED_CHINESE;
        getResources().updateConfiguration(config, metrics);
    }
}
2.改动AndroidManifest.xml文件。application节点指定为我们自己定义的FunctionApplication
<application
android:name="com.xxx.xxxx.FunctionApplication"
android:allowBackup="true"
android:configChanges="orientation|screenSize|locale"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
至此。旋转屏幕后语言失效的问题就可攻克了。
查阅了相关资料。发如今屏幕旋转时触发onConfigurationChanged(Configuration
 newConfig)方法时。这个newConfig取的是系统的,这就是为什么语言会切换到系统语言的原因。所以在这里我们再次设定下locale就能够了。
Android旋转屏幕后国际化语言失效的解决的方法的更多相关文章
- 浏览器禁用Cookie,基于Cookie的会话跟踪机制失效的解决的方法
		当浏览器禁用Cookies时.基于Cookie的会话跟踪机制就会失效.解决的方法是利用URL重写机制跟踪用户会话. 在使用URL重写机制的时候须要注意.为了保证会话跟踪的正确性,全部的链接和重定向语句 ... 
- Android学习----自适应国际化语言
		[前言] 自适应的知识与编程无关,关键在于配置文件的修改.自适应的内容包括:语言.屏幕.平台.今天就来说一下如何自适应国际化言. internationalization (国际化)简称:i18n,因 ... 
- android中常见的内存泄漏和解决的方法
		android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ... 
- Android开机键失灵启动手机的解决的方法
		问题描写叙述 Android手机的关机键损坏,无法开机. 解决方法 将手机通过USB线链接电脑,进入命令行.找到adb命令所在文件夹.执行例如以下命令: adb reboot 注意:用这样的方法的前提 ... 
- 升级Xcode 导致插件失效的解决的方法
		我们在升级xcode的情况下,我们的一些第三方插件就会失效. 比方cocoapods,等比較重要的三方插件, 解决这个问题例如以下: 进入插件文件夹:~/Library/Application Sup ... 
- Android   Bitmap  OutOfMemory 解决的方法
		在Android应用里,最耗费内存的就是图片资源.并且在Android系统中.读取位图Bitmap时,分给虚拟机中的图片的堆栈大小仅仅有8M.假设超出了.就会出现OutOfMemory异常 E/And ... 
- Android 应用内多语言切换
		最近公司的 App 里需要用到多语言切换,简单来说,就是如果用户没有选择语言选项时,App 默认跟随系统语言,如果用户在 App 内进行了语言设置,那么就使用用户设置的语言.当然,你会发现,App 的 ... 
- 学Android开发,入门语言java知识点
		学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ... 
- ode.js 版本控制 nvm 和 n 使用 及 nvm 重启终端失效的解决方法
		今天的话题包括2个部分 node.js 下使用 nvm 或者 n 来进行版本控制 nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效 第一部分 用什么来管理 node.j ... 
随机推荐
- 《virtual san 最佳实践》节选  Virtual SAN的发展与现状
			Virtual SAN的发展与现状Virtual SAN已经迭代更新到第四代,即Virtual SAN 6.2.通过三次主版本迭代,Virtual SAN已经成为一款非常成熟的软件定义存储软件.在此, ... 
- 详解:(cron , crontab , anacron)
			导读: 人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类根据时间的长短(单位)在这条直线上做了密密麻麻的标记(世纪-年-月-日-时-分-秒-纳秒......),通过这样 ... 
- PHP 变量作用域
			以下为 PHP 中的各种变量在底层实现中是如何存储的. 变量: $temp = 'temp'; $temp2 = $temp; // key p *executor_globals.symbol_ta ... 
- 【BZOJ 1192】[HNOI2006]鬼谷子的钱袋
			[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 设k为最大的正整数满足 \(2^0+2^1+...+2^k<=m\) 如果\(m>2^0+2^1+...+2^k\) 那 ... 
- 这两道题目很相似 最优还钱方式 & 除法推导
			http://www.cnblogs.com/grandyang/p/6108158.html http://www.cnblogs.com/grandyang/p/5880133.html 都是根据 ... 
- Redit集群搭建-Sentinel模式搭建
			Redit集群搭建 学习了: Windows:http://blog.csdn.net/mrxiagc/article/details/52799081 Linux:https://www.cnblo ... 
- [MST] Store Store in Local Storage
			For an optimal user and developer experience, storing state in local storage is often a must. In thi ... 
- swift 给导航添加item,实现界面的跳转
			//给导航添加item var rightItem = UIBarButtonItem(title: "First", style: UIBarButtonItem ... 
- ftoa浮点型转换成字符串
			#include <stdio.h> bool ftos(float num,char *s,int n) { int temp; float t=num; int pn=0; b ... 
- poj--2083--Fractal(dfs)
			Fractal Time Limit: 1000MS Memory Limit: 30000KB 64bit IO Format: %I64d & %I64u Submit Statu ... 
