我有一个问题,我有英语和西班牙语的资源。我已将语言环境设置如下:
private Settings settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = new Settings(LoadingScreenActivity.this);
if(settings.isSpanish()){
String languageToLoad = "es"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
}
setContentView(R.layout.activity_loading_screen);
我也在清单中设置了这个:
android:configChanges="locale|orientation|keyboardHidden|screenSize"
settings.isSpanish返回true。布局仍然显示英文文本,而不是西班牙语。
答案 0 :(得分:0)
我可以通过onResume
执行此操作@Override
protected void onResume() {
super.onResume();
settings = new Settings(WheelActivity.this);
Log.e("isSpanish", String.valueOf(settings.isSpanish()));
if(settings.isSpanish()){
String languageToLoad = "es"; // your language
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
}
我认为它不是关于onResume而是这部分
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
虽然我必须在所有活动中这样做。我不确定这是否是正确的方法。将等待更好的解决方案。