我已根据此ans从设置中实现了更改语言,但在杀死我的应用程序后,某些应用程序屏幕变为英语。
我已经实现了如下代码 启动画面代码
String deviceLanguage = Locale.getDefault().getLanguage();
if (!"en".equalsIgnoreCase(deviceLanguage) && !"ar".equalsIgnoreCase(deviceLanguage)){
deviceLanguage="en";
}
((AppController)getApplication()).appLang= Utilities.getSaveData(this, getString(R.string.key_language),deviceLanguage);
详细活动代码
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(MyContextWrapper.wrap(newBase, ((AppController)newBase.getApplicationContext()).appLang));
}
注意:我在一个加3T设备和genymotion模拟器与5.1安卓版本中遇到此问题
答案 0 :(得分:1)
final Resources res = appContext.getResources();
final Configuration conf = res.getConfiguration();
conf.locale = new Locale("ar", "AE");
res.updateConfiguration(conf, null);
更新配置后,重启活动,如下所述
finish();
final Intent intent = getIntent();
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);