9

虽然我意识到资源本身是在 XML 文件中定义的,但如果我有自己想要使用的类型的 XML 文件,我应该将它们存储在“res/xml”中吗?

有没有更好的方法来做到这一点,例如使用资产,然后将它们作为二进制加载以由另一个 XML 库解析?

4

3 回答 3

9

我会在res具有特定资源类型的文件夹中添加 XML 资源。这是我已经适应的约定,将我的所有文件都放在同一个目录中以进行组织。

如果您在其中添加 XML 文件,res/xml则可以在运行时随时通过Resources.getXML()

于 2010-03-07T15:28:42.207 回答
2

如果您更喜欢易于编码而不是闪电般的速度,那么我会改用Simple XML 库。它只是更容易编程。我写了一篇博文,你可以查看它,解释如何将它包含在你的项目中。

于 2011-05-05T02:34:34.280 回答
0

首先了解如何在 Android 中正确访问文件:

您可能需要访问您的原始文件和目录。如果这样做,那么将文件保存在res/其中对您不起作用,因为only way to read a resource from res/ is with the resource ID. 相反,您可以将资源保存在 assets/ 目录中。

保存在 assets/ 目录中的文件没有资源 ID,因此您无法通过 R 类或 XML 资源引用它们。相反,您可以像普通文件系统一样查询 assets/ 目录中的文件,并使用 AssetManager 读取原始数据。

但是,如果您只需要读取原始数据(例如视频或音频文件)的能力,则将文件保存在 res/raw/ 目录中并使用 openRawResource() 读取字节流。

访问 XML 文件

http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromXml

res/xml/

Arbitrary XML files that can be read at runtime by calling Resources.getXML()

来源

Resources res = activity.getResources();
XmlResourceParser xrp = res.getXml(R.xml.the_file_name_aka_resource_ID);
于 2014-10-07T14:21:08.873 回答