更改应用程序的语言
Change language of app
我正在尝试更改我的应用程序的语言。
我实现了这段代码:
public static void setLocale(Resources res, String lang) {
Configuration conf = new Configuration(res.getConfiguration());
switch (lang) {
case "French" :
conf.locale = new Locale("fr");
break;
case "Dutch" :
conf.locale = new Locale("nl");
break;
case "English" :
conf.locale = new Locale("en");
break;
}
res.updateConfiguration(conf, res.getDisplayMetrics());
}
然后我使用此代码刷新 activity:
Intent refresh = new Intent(getActivity(), HomeActivity.class);
getActivity().finish();
startActivity(refresh);
此代码有效,但当我关闭应用程序(从后台删除)并重新打开它时,语言 return 变为我设备的默认语言。
有什么方法可以在我重新打开我的应用程序时保留所选的语言吗?
您可以存储在默认共享首选项中:
PreferenceManager.getDefaultSharedPreferences().edit().putString("Locale", localVal).commit();
并且每次应用程序启动时都会通过以下方式检索它:
locale = PreferenceManager.getDefaultSharedPreferences().getString("Locale", "defaultValue");
我正在我的应用程序中使用它,它工作正常,试一试希望它能帮助你
public static void changeLanguageSettings(Context context,String language){
try{
Locale mLocale = new Locale(language);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration configuration = res.getConfiguration();
Configuration newConfig = new Configuration(configuration);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
newConfig.setLocale(mLocale);
}else{
newConfig.locale = mLocale;
}
context.getResources().updateConfiguration(newConfig, dm);
}catch(Exception e){
e.printStackTrace();
}
}
我正在尝试更改我的应用程序的语言。
我实现了这段代码:
public static void setLocale(Resources res, String lang) {
Configuration conf = new Configuration(res.getConfiguration());
switch (lang) {
case "French" :
conf.locale = new Locale("fr");
break;
case "Dutch" :
conf.locale = new Locale("nl");
break;
case "English" :
conf.locale = new Locale("en");
break;
}
res.updateConfiguration(conf, res.getDisplayMetrics());
}
然后我使用此代码刷新 activity:
Intent refresh = new Intent(getActivity(), HomeActivity.class);
getActivity().finish();
startActivity(refresh);
此代码有效,但当我关闭应用程序(从后台删除)并重新打开它时,语言 return 变为我设备的默认语言。
有什么方法可以在我重新打开我的应用程序时保留所选的语言吗?
您可以存储在默认共享首选项中:
PreferenceManager.getDefaultSharedPreferences().edit().putString("Locale", localVal).commit();
并且每次应用程序启动时都会通过以下方式检索它:
locale = PreferenceManager.getDefaultSharedPreferences().getString("Locale", "defaultValue");
我正在我的应用程序中使用它,它工作正常,试一试希望它能帮助你
public static void changeLanguageSettings(Context context,String language){
try{
Locale mLocale = new Locale(language);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration configuration = res.getConfiguration();
Configuration newConfig = new Configuration(configuration);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
newConfig.setLocale(mLocale);
}else{
newConfig.locale = mLocale;
}
context.getResources().updateConfiguration(newConfig, dm);
}catch(Exception e){
e.printStackTrace();
}
}