【问题标题】:Performance issue in parssing XML file using android XmlPullParser使用 android XmlPullParser 解析 XML 文件时的性能问题
【发布时间】:2014-03-28 09:45:21
【问题描述】:

我正在编写一个只有两个片段的简单 android 应用程序。第一个是内容列表,第二个是有关该内容的完整数据。 我想将我的数据存储在一个 xml 文件格式中,如下所示。

    <item1>
       <f1>data</f1>
       <f2>data</f2>
       <f3>data</f3>
       <f4>data</f4>
       <f5>data</f5>
    </item1>
    <item2>
    .....
    </item2>

我想使用 f1、f2 和 f3 来创建我的自定义列表视图和整个数据的所有字段。我已经通过使用 XmlPullParser 来实现这一点,它读取整个数据并将其放入表示的 java 对象的 ArrayList 中。

问题是我不希望每次都处理整个数据。我的首选方式是这样的

创建列表视图时

  1. 只从我的文件中读取 f1、f2 和 f3,因为我不需要 f4 和 f5。

  2. 一开始只阅读尽可能少的项目!由于屏幕上只会显示 5 - 10 个项目,因此我想先解析它们,然后在回收视图时根据需要解析项目。

显示内容时

  • 只得到我想要的项目,而不是我不关心的其他一百个项目!

那么我怎么能做到这一点?!我可以以有效的方式阅读 xml 文件的第 200 项吗?提前感谢您的回答。

【问题讨论】:

标签: java android xml xmlpullparser


【解决方案1】:

为什么不直接使用数据库?我认为要存储超过 200 条记录,建议使用数据库。 此外,您的 xml 无效。你需要这样的根标签:

<items>
    <item1>
        <f1>data</f1>
        <f2>data</f2>
        <f3>data</f3>
        <f4>data</f4>
        <f5>data</f5>
    </item1>
    <item2>
        .....
    </item2>
</items>

【讨论】:

  • 使用 db 将解决我的大部分问题,但我不想使用它,因为我的数据是静态的!将 db 用于静态内容对我来说毫无意义。我正在寻找正确的方法来做到这一点
猜你喜欢
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多