2016-01-14 23 views
3

众所周知,我们根据选择的语言排列了值文件夹,例如value-en,​​。 我只想检查特定的值文件夹是否存在? 例如,我想检查value-fr是否存在于res文件夹中?检查android文件夹中的Value文件夹

+1

你见过[this](http://stackoverflow.com/questions/4539630/how-do-i-check-to-see-if-a-resource-exists-in-android)? –

+0

@EricB。我认为OP想检查是否存在特定的本地化。 – mixel

回答

1

这使我想到的第一件事是定义在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 
}