我在具有多个片段的活动中使用谷歌地图,当从设置页面将语言从英语更改为阿拉伯语,反之亦然时,我重新加载整个活动以应用更改,每个事物通常显示所有文本更改为除了地图内的标题(国家名称,城市,街道......)之外的新语言
这是我用来改变语言的代码:
public static void setLanguage(Activity activity){
String languageToLoad = "en";
boolean isEnglish=Preference.getBooleanPrefs(Preference.LANGUAGE, activity, true);
if(isEnglish)
languageToLoad = "en";
else
languageToLoad = "ar";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
activity.getBaseContext().getResources().updateConfiguration(config,activity.getResources().getDisplayMetrics());
}
这是我用来重新加载活动的代码:
public void refreshChangelanguage() {
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
finish();
loadFragment(FRAGMENT_SETTING, null);
}
地图一直以旧语言显示,直到我手动从堆栈列表中删除整个应用程序然后重新打开它,我如何强制地图以新语言重新加载标签?
提前谢谢
答案 0 :(得分:0)
我说你必须在<p>User Name: @User.Identity.GetUserDisplayName()</p>
之后和活动setLanguage(Activity activity)
之前进行super.onCreate
。