我使用以下代码在我的应用中更改语言:
protected void changeAppLangForUser(String lang) {
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = new Locale(lang);
res.updateConfiguration(conf, dm);
}
然后重启Activity:
Intent intent = new Intent(getActivity(), SplashScreenActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION);
getActivity().startActivity(intent);
getActivity().overridePendingTransition(0, 0);
字符串按预期更改,但不存储在mipmap文件夹中的图标如下:
这似乎很奇怪,但如果我肯定关闭应用程序,然后按启动图标再次启动它,它会显示预期语言的图标。我是否会遗漏某些内容或预期的行为?
答案 0 :(得分:1)
我猜您的selector
文件夹中有drawable
个资源,使用mipmap
图标。如果是这样,请尝试创建文件夹drawable-ru
,然后将其粘贴到此新目录中。我以前遇到过这个问题;)