如何刷新应用与onConfigChanges没有松动的情况下
protected void onResume() {
super.onResume();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Configuration config = getBaseContext().getResources().getConfiguration();
String lang = settings.getString("lang_list", "");
// Log.d("Lang",lang);
if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {
recreate();
Locale locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
if (AppController.getInstance().isPreferenceChanged()) {
setupViewPager(viewPager);
adapter.notifyDataSetChanged();
}
}
我想改变应用程序的语言,而不重新创建应用程序。我的意思是,当用户从设置中选择任何语言时,我想要这样做,然后它应该更改设置活动语言,而不使用recreate();
,因为当我使用recreate();
时,它会使应用程序闪烁一次。所以我不使用recreate();
。相反,我写了下面的代码在制定活动在AndroidManifest.xml
<activity
android:name=".activity.SettingsActivity"
android:label="@string/title_activity_settings"
android:configChanges="orientation|keyboardHidden|screenSize|locale|layoutDirection"/>
如下面的截图可以看到,我选择了“印地文”的语言,但它没有更新的活动,以印地文。我的意思是“选择国家”,“选择您的语言”和“选择类别”应以印地语而不是英语显示。我已经写了两种语言的字符串。
是否有人知道在更改语言时如何更改它? 或 为什么onConfigChanges不适用于区域设置,因为它是为Orientation工作的。
谢谢!
什么都没有发生...... :( –
我需要更改活动语言,因为我选择另一种语言....所有应用程序应自动更改为选定的语言... –
发布您的微调代码。 – Queendevelopers