当我将语言更改为法语时,getResources.getString(R.string.hello_world)无法正常工作

时间:2018-07-27 05:59:39

标签: android string

 我有3个用于3种不同语言(English enFrench frSpanish sp)的字符串文件。当我将语言从en更改为sp时,一切正常。如果我将其更改为fr,则会显示找不到资源ID 。资源在3个字符串文件中可用。如何获得fr语言?

  

进程:com.bhaskar.project,PID:19377    Error android.content.res.Resources $ NotFoundException:字符串资源ID#0x7f0f0059

2 个答案:

答案 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等?