0

所有ID都是R永久的吗?最近我做了一个游戏,并使用音轨的 ID 保存到SharedPreferences. 我想知道这些ID(相同文件的)是否会在下一次构建时更改?你能指点我的文件吗?

4

1 回答 1

3

每次更改资源时都会更改它们。您不应依赖硬编码值(例如将它们保存在 中SharedPreferences)。

似乎没有真正的文档说明这一点(请参阅有关资源的文档),但是您可以通过记录(例如)的int值来自己测试R.id.hello_world,然后在 XML 文件中前后添加一大堆字符串,然后重建它。值将int完全不同。

编辑:我确实找到了一些您可能想要阅读的文档。它指出:“您永远不需要查看那里来发现资源 ID ”;即使在您的情况下,您没有查看此文件,而是直接使用其中的值。

此外,还有一个关于如何生成 ID 的答案,它详细说明了每个生成的 ID 都有一个顺序(包名称、类型名称、资源名称),但是这些是任意生成的。这:“请注意,默认情况下,aapt 不会尝试在构建之间保持这些标识符相同。

您可能还想通读此幻灯片,了解有关 AAPT 和 Android 资源生成过程的更多详细信息。

于 2012-08-06T01:56:17.863 回答