在Android中每个应用程序都维护着一个自身的配置。被封装在
android.content.res.Configuration 类里,通过该类,我们可以修改语言参数,实现对应用语言的变更。
本例利用Configuration 实现应用程序语言设置:
Resources resource = getResources();
Configuration config = resource.getConfiguration();
locale属性为一个Locale类的对象,
Locale locale = getResources().getConfiguration().locale;//获得local对象
String country = locale.getCountry(); //可以通过local获得相关的属性 如国家
//设置应用的语言为英语
config.locale = Locale.ENGLISH;
//设置成系统默认的语言:
config.locale = Locale.getDefault();
getBaseContext().getResources().updateConfiguration(config, null);
语言设置完成后,应用并不会自动刷新当前已经打开的Activity,所以为了刷新整个应用,需要重新启动一下应用:
另外需要注意的是,需要在Manifest.xml文件中的Activity中配置android:configChanges属性,通过配置该属性,Activity可以捕捉设备状态的变化
1 首先获取Configuration 类:
2 设置config的local属性
3 设置config属性
4 设置好config属性后,需要更新
Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
-------------------------------------------------------------------------------
- <</span>activity
-
android:name=".MainActivity" -
android:label="@string/title_activity_main" -
android:configChanges="locale" > //捕捉local的变化 -
<</span>intent-filter> -
<</span>action android:name="android.intent.action.MAIN" /> -
<</span>category android:name="android.intent.category.LAUNCHER" /> -
</</span>intent-filter> - </</span>activity>
本文介绍如何使用Android的Configuration类来更改应用的语言设置。通过修改Configuration的locale属性并更新资源,可以实现在不同语言间的切换,并提供了重启应用的方法以确保语言设置生效。
1426

被折叠的 条评论
为什么被折叠?



