来自资源的参考资源ID

问题描述 投票:2回答:1

我有一个有多种口味的项目,applebanana。它引用存储在raw资源目录中的文件。我宁愿避免命名每一个database.sqlite,而是保持名称与味道,apple.sqlitebanana.sqlite相关。在我的代码中,我有一行读作

getResources().openRawResource(R.raw.apple);

是否有可能创建一个基本上可以链接到正确id的整数资源,或者我最好在每个可以链接到它的风格中创建一个类?

android android-resources android-productflavors
1个回答
2
投票

您可以为构建类型,产品风格(例如applebanana)以及构建变体创建专用的源集。您可以创建resource aliases,为资源提供另一个标识符。你应该能够将它们混合起来以获得你想要的东西。

我从你的问题中假设你的项目中有apple/res/raw/apple.sqlitebanana/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.whatevermain中的代码中标识此资源

(在那里你可以用什么代替whatever

在这里,您要为资源设置一个公共别名(whatever),将别名的特定于风味的定义指向特定于风味的资源。

© www.soinside.com 2019 - 2024. All rights reserved.