从资源中引用资源 ID
Reference resource id from resource
我有一个项目有多种风格,apple
和 banana
。它引用存储在 raw
资源目录中的文件。我宁愿避免命名每个 database.sqlite
,而是让名称与风味相关,apple.sqlite
和 banana.sqlite
。在我的代码中,有一行内容为
getResources().openRawResource(R.raw.apple);
是否可以创建一个基本上可以 link 到正确 id 的整数资源,或者我最好在每个具有 [=22= 的口味中制作一个 class ] 到了吗?
您可以为构建类型、产品风格(例如 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>
在 main
中的代码中使用 R.raw.whatever
标识此资源
(你可以用什么替换 whatever
)
在这里,您正在为资源设置一个通用别名 (whatever
),将别名的特定风格定义指向特定风格的资源。
我有一个项目有多种风格,apple
和 banana
。它引用存储在 raw
资源目录中的文件。我宁愿避免命名每个 database.sqlite
,而是让名称与风味相关,apple.sqlite
和 banana.sqlite
。在我的代码中,有一行内容为
getResources().openRawResource(R.raw.apple);
是否可以创建一个基本上可以 link 到正确 id 的整数资源,或者我最好在每个具有 [=22= 的口味中制作一个 class ] 到了吗?
您可以为构建类型、产品风格(例如 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>
在
main
中的代码中使用
R.raw.whatever
标识此资源
(你可以用什么替换 whatever
)
在这里,您正在为资源设置一个通用别名 (whatever
),将别名的特定风格定义指向特定风格的资源。