众所周知,我们的values文件夹是根据所选语言排列的,例如value-en
,value-ja
。
我只想检查特定的值文件夹是否存在?
例如,我想检查value-fr
是否存在于res
文件夹中?
最佳答案
我首先想到的是在values/localized.xml
中定义布尔项(或其他一些资源文件,如strings.xml
):
<resources>
<bool name="localized">false</bool>
</resources>
然后在每个
values-xx
文件夹中覆盖它:<resources>
<bool name="localized">true</bool>
</resources>
现在您可以为特定的语言环境创建
Resource
对象并检查localized
资源值:Resources currentResources = getResources();
AssetManager assets = currentResources.getAssets();
DisplayMetrics metrics = currentResources.getDisplayMetrics();
Configuration config = new Configuration(currentResources.getConfiguration());
config.locale = Locale.FRENCH;
Resources localizedResources = new Resources(assets, metrics, config);
if (localizedResources.getBoolean(R.bool.localized)) {
// values-fr exists
}