【问题标题】:Where to place an XML file containing data within an Android app在 Android 应用中放置包含数据的 XML 文件的位置
【发布时间】:2011-05-18 21:33:27
【问题描述】:

我是 Android 开发的新手。我有一个 XML 文件,其中包含应用程序将读取的数据。我应该将这个 XML 文件保存在哪里?它应该存储在“value”文件夹中吗?

【问题讨论】:

    标签: android resources


    【解决方案1】:

    我会说这取决于。您在 XML 文件中保存了什么?还有一个res/xml-文件夹,可以保存 XML 文件。但 Android 几乎可以用 XML 文件做任何事情,所以你可能想阅读我的 little Tutorial 了解在哪里放置哪些资源。

    另外,assetsres 目录之间也有区别:

    分辨率

    • 下不允许有子目录 特定的资源文件夹。
    • R-class 索引所有资源 并提供简单的访问。
    • 有一些简单的方法可以 帮助读取存储在 res-目录

    资产

    • 允许子目录(最多 你喜欢)。
    • R-class 没有索引
    • 读取存储在assets中的资源 使用AssetManager 完成。

    【讨论】:

    • 这是正确答案。我更喜欢不使用 assets 目录,然后使用 Simple XML 进行 XML 解析:robertmassaioli.wordpress.com/2011/04/21/…
    • 感谢您解释两者之间的区别。它有帮助。
    • res/xml 文件夹帮助了我。我有一个带有自定义标签的 xml 数据文件。
    【解决方案2】:

    你可以把它放在 res/raw 文件夹中。然后您将使用以下方式访问它:

    getResources().openRawResource(resourceName)
    

    【讨论】:

      【解决方案3】:

      我有类似的要求,经过大量研究,我找到了 2 个放置自定义 XML 的解决方案: 您可以将自定义 XML 放入

      1. 分辨率/原始/

      2. res/xml/

      要访问这些位置,您将使用以下代码:

      一个。如果 XML 放在 res/raw 中,那么:

      getResources().openRawResource(R.raw.custom-xml)

      这为您提供了读取 xml 的简单方法:

      使用以下代码,我正在读取位于原始文件夹中的内存中的 XML:


      BufferedReader br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.custom-xml)));
                  
      StringBuilder str = new StringBuilder();
      String line;
      while ( (line = br.readLine()) != null){
          str.append(line);
      }
      

      第二个选项:

      getResources().getxml(R.xml.custom-xml);

      这样你就可以使用基于事件的解析器来读取 xml。

      【讨论】:

      • 更正** getResources().openRawResource(R.xml.custom-xml) 这应该是getResources().getxml(R.xml.custom-xml)
      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多