我尝试在Android应用程序中更改我的语言环境。 如果我只使用语言一切都好,但今天我将葡萄牙语翻译添加到我的应用程序。
代码:
Locale locale;
if(language.contains("-")) // In this case, the locale specify also the country
{
String[] country_locale = language.split("-");
locale = new Locale(country_locale[0], country_locale[1]);
}
else
locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
一切都好,直到最后一行。 我知道,因为在我的程序的前一部分中,我可以使用以下代码获得带有正确的pt-br语言环境的字符串:
Resources resources = new Resources(ctx.getAssets(), ctx.getResources().getDisplayMetrics(), new_config);
如果使用国家/地区代码定义了区域设置,则updateConfiguration将我的区域设置设置为英语。
String.xml位于values-pt-rBR
中调试Locale值时设置为pt-BR。
编辑:经过进一步的测试,这适用于我的Android手机,但不能在我的平板电脑上运行(Sambung与Android 4.4.2)。 可能是什么原因?编辑2:如果我使用手机也会在模拟器上工作,如果我使用平板电脑则无法工作。
答案 0 :(得分:0)
在您当前的活动中,尝试在代码后调用以下内容:
finish();
startActivity(getIntent());
这将重新创建您的Activity,然后重新加载字符串资源。