我有一个包含多种风格的项目,apple
和banana
。它引用存储在raw
资源目录中的文件。我希望避免为每个database.sqlite
命名,而是保持名称与风味apple.sqlite
和banana.sqlite
相关。在我的代码中,我有一行读作
getResources().openRawResource(R.raw.apple);
是否有可能创建一个本质上可以链接到正确id的整数资源,或者我最好在每个可以链接到它的风格中创建一个类?
答案 0 :(得分:2)
您可以为构建类型,产品风格(例如apple
和banana
)以及构建变体创建专用的源集。您可以创建resource aliases,为资源提供另一个标识符。你应该能够将它们混合起来以获得你想要的东西。
我从您的问题中假设您的项目中有apple/res/raw/apple.sqlite
和banana/res/raw/banana.sqlite
。如果是,那么:
创建apple/res/values/ids.xml
,其中有<item type="raw" name="whatever">@raw/apple</item>
创建banana/res/values/ids.xml
,其中有<item type="raw" name="whatever">@raw/banana</item>
使用R.raw.whatever
在main
(您可以将whatever
替换为,等等)
在这里,您要为资源设置一个公共别名(whatever
),将别名的特定于风味的定义指向特定于风味的资源。