我有一个android项目,它支持应用程序内的多个语言环境,例如印地语,英语,乌尔都语等。当我手动选择本地语言时,它可以很好地工作,但是当我重新启动该应用程序时,问题就出在这里,它会默认使用也可以在屏幕上旋转。
在手动更改本地之前,我不想更改本地。 我应该在Java类的主要活动中做什么?我是否需要创建一个新的Java类?
这是我在“主要活动”中进行语言配置的代码:
private void setAppLocale (String LocaleCode){
Resources res=getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLocale(new Locale(LocaleCode));
}else {
conf.locale = new Locale(LocaleCode.toLowerCase());
}
res.updateConfiguration(conf, dm);
}
private Locale locale = null;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (locale != null) {
Locale.setDefault(locale);
Configuration config = new Configuration(newConfig);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
}`
答案 0 :(得分:0)
我建议您在选择语言时手动将其存储在sharedPreferences
中。
默认情况下,在您的sharedPreferences
中,它将是您的本地语言。