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 : 圆角按钮 shape属性
  2. Android(安卓)之 监控手机电量
  3. android之simpleAdaper应用
  4. Activity背景全透明
  5. android4.4系统永不锁屏
  6. Android(安卓)Studio插件大全
  7. Material Design综合实例
  8. Android(安卓)DataBinding 运算符、BindingAdapter、 BindingCon
  9. android获取安装的应用程序

随机推荐

  1. Android是什么(What is Android)
  2. Android学习笔记之Android安装问题
  3. Android Fragment的增加,删除,添加
  4. Android Studio小技巧
  5. android EditView的一些问题
  6. android RelaLayout
  7. android WebView总结
  8. DroidDraw Android 界面设计工具使用
  9. Android(安卓)EditText 不弹出输入法总结
  10. 改变Android(安卓)对话框位置及边框