我有3个用于3种不同语言(English en
,French fr
,Spanish sp
)的字符串文件。当我将语言从en
更改为sp
时,一切正常。如果我将其更改为fr
,则会显示找不到资源ID 。资源在3个字符串文件中可用。如何获得fr
语言?
进程:com.bhaskar.project,PID:19377 android.content.res.Resources $ NotFoundException:字符串资源ID#0x7f0f0059
答案 0 :(得分:1)
尝试以下代码。 要更改语言,我做了一个功能,您必须传递语言代码和上下文。
language =“ zh-CN” 根据您的要求设置语言(英语,法语,西班牙语) 上下文传递您的活动/片段上下文
public static boolean setLangRecreate(String language, Context context) {
try {
Configuration config = context.getResources().getConfiguration();
Locale locale = new Locale(language);
Locale.setDefault(locale);
config.locale = locale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
// recreate();
((Activity) context).finish();
((Activity) context).overridePendingTransition(0, 0);
((Activity) context).startActivity(((Activity) context).getIntent());
((Activity) context).overridePendingTransition(0, 0);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
答案 1 :(得分:0)
您是否将这些文件放入了相应的资源文件夹中,例如res-> values,res-> values-sp等?