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可以捕捉设备状态的变化:
<activity              android:name=".MainActivity"              android:label="@string/title_activity_main"              android:configChanges="locale" >              <intent-filter>                  <action android:name="android.intent.action.MAIN" />                  <category android:name="android.intent.category.LAUNCHER" />              </intent-filter>  </activity>

更多相关文章

  1. Android 通过intent 传递对象
  2. Android 属性动画详解
  3. 服务器向Android写一个对象
  4. Android之Bean属性通知类
  5. View的XML 属性大全(官方文档)
  6. android 获取当前系统的语言

随机推荐

  1. android设置gps自动开启
  2. android自定义按钮按下效果
  3. android 7.1.1 开始 Prevent apps to ove
  4. android > 获取图片 从 本地 /相机
  5. Android(安卓)FlexboxLayoutManager 使用
  6. Android(安卓)Bitmap用法总结
  7. 2013.12.05(5)——— android ViewPagerInd
  8. Android解决NDK not configured问题
  9. android 框架
  10. 读取指定路径数据库的方法