我想设置活动开始时选择的应用程序的语言,该语言的值在 SharedPreferences
这是以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPreferences = getSharedPreferences("language", Context.MODE_PRIVATE);
String language = sharedPreferences.getString("language", "");
Log.e("lang is :", language);
if (language == "fr") {
Locale locale = new Locale("fr");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config, null);
//finish();
//startActivity(getIntent());
}else if(language == "en"){
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config, null);
}
setContentView(R.layout.activity_main);
问题是应用程序总是以设备的语言开始!!!
好的,尝试像这样更改您的代码:
Resources res = getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("put the value that u get from SharedPreferences);
res.updateConfiguration(conf, dm);
希望它有效!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句