菜单语言没有';当我改变android应用程序语言时,我不会改变
我正在尝试更改我的应用程序语言,一切正常,但菜单字符串在第一次更改后不会更改,需要我再次将语言更改为相同的语言才能更改菜单字符串 我正在使用SharedReferences保存用户想要选择的语言,在活动中,我首先检查SharedReferences是否保存了语言,并根据SharedReferences中保存的语言更改语言 这是我用来更改应用程序语言的活动中的代码菜单语言没有';当我改变android应用程序语言时,我不会改变,android,Android,我正在尝试更改我的应用程序语言,一切正常,但菜单字符串在第一次更改后不会更改,需要我再次将语言更改为相同的语言才能更改菜单字符串 我正在使用SharedReferences保存用户想要选择的语言,在活动中,我首先检查SharedReferences是否保存了语言,并根据SharedReferences中保存的语言更改语言 这是我用来更改应用程序语言的活动中的代码 Resources res = getResources(); DisplayMetrics dm = res.get
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(language.toLowerCase()));
res.updateConfiguration(conf, dm);
我找到了解决方案,但我认为这是肮脏的解决方案,他们当然是更好的解决方案。 我只是希望它能帮助像我这样找不到解决办法的人 我刚刚更改了fragment的代码,将语言更改为这样 公共void saveData(字符串lang、字符串curr){ 就像这样 公共void saveData(字符串lang、字符串curr){ 如果有人能为我将这个解决方案编辑成另一个更好的解决方案,我将不胜感激
if (iLang == 0){
Toast.makeText(getActivity(), "Choose your language, please.", Toast.LENGTH_SHORT).show();
}else{
SharedPreferences mPrefs = getActivity().getSharedPreferences("fetch", MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = mPrefs.edit();
prefsEditor.putString("lang", lang);
prefsEditor.putString("curr", curr);
prefsEditor.apply();
getActivity().recreate();
Intent intent = getActivity().getIntent();
getActivity().finish();
startActivity(intent);
}
}
if (iLang == 0){
Toast.makeText(getActivity(), "Choose your language, please.", Toast.LENGTH_SHORT).show();
}else{
SharedPreferences mPrefs = getActivity().getSharedPreferences("fetch", MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = mPrefs.edit();
prefsEditor.putString("lang", lang);
prefsEditor.putString("curr", curr);
prefsEditor.apply();
Intent intent = new Intent(getActivity,HomeActivity.class);
startActivity(intent);
}
}