阅读更多

 

android每个应用都保存着一份仅对自身有用的配置,被封装在 android.content.res.Configuration 类里,通过该类,我们可以修改语言参数,实现对应用语言的变更。

首先获取 Configuration 对象:

 

Resources resource = getResources();Configuration config = resource.getConfiguration();  

 

然后设置 config 中的 locale 属性,选择需要的语言。

locale属性为一个Locale类的对象,比如我们要设置应用的语言为英语,那么可以这样实现:

 

config.locale = Locale.ENGLISH;

 

  或者要设置成系统默认的语言:

config.locale = Locale.getDefault(); 

最后,需要更新配置文件,执行下面的代码:

 

getBaseContext().getResources().updateConfiguration(config, null);

 


语言设置完成后,应用并不会自动刷新当前已经打开的Activity,所以为了刷新整个应用,目前比较通用的做法是重新启动应用:

 

Intent intent = new Intent();intent.setClass(this, MainActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);this.startActivity(intent);

 

 

另外需要注意的是,需要在Manifest.xml文件中的Activity中配置android:configChanges属性,通过配置该属性,Activity可以捕捉设备状态的变化:

 

                                                        

 

 

具体的实现请参考Demo: LanguageChangeDemo

下载地址:https://github.com/hanyi/LocaleChangeDemo.git

 

更多相关文章

  1. Qt on Android(安卓)Episode 3(翻译)
  2. Android(安卓)混合了 JSON 的 Android(安卓)应用程序
  3. EditText的属性
  4. android push机制-C2DM
  5. Qt on Android(安卓)Episode 4(翻译)
  6. ViewGroup之android:animateLayoutChanges属性
  7. Android应用程序的构成
  8. Android(安卓)Design Support Library使用详解(二)
  9. Android(安卓)AIDL使用详解 +整合应用

随机推荐

  1. Android(安卓)systemserver 解析
  2. android 经典文章收集
  3. Android(安卓)Framework(II)Person Sampl
  4. 准备一个rubymotion for android的实际项
  5. android获取bluetooth的信号强度(RSSI)
  6. [译] Android(安卓)架构:Part 4 —— 实践
  7. Android中向服务器上传图片
  8. 关于CoordinatorLayout展开与折叠相关属
  9. android 开发中判断网络是否连接的代码
  10. 很好的资源学习入口_android