虽然我意识到资源本身是在XML文件中定义的,但如果我有一个我希望使用的我自己类型的XML文件,我应该将它们存储在“res / xml”中吗?
有没有更好的方法来执行此操作,例如使用资产然后将它们加载为二进制文件以便由另一个XML库进行解析?
答案 0 :(得分:9)
我会在res
文件夹中添加具有特定资源类型的XML资源。它是我已经适应的惯例,将我的所有文件放在同一目录中进行组织。
如果您在res/xml
内添加XML文件,则可以在运行时随时通过Resources.getXML()
答案 1 :(得分:2)
如果您喜欢轻松快速编码,那么我会使用Simple XML library代替。它更容易编程。我写了一篇博文,你可以查看解释你的how to include it in a project。
答案 2 :(得分: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);