2014-03-28 59 views
1

我正在写一个简单的android应用程序,只有两个片段。首先是内容列表,其次是关于该内容的完整数据。 我想将数据存储在如下所示的xml文件中。使用android XmlPullParser分析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项吗?预先感谢您的回答。

+0

尝试XML序列化与http://simple.sourceforge.net/ – playmaker420

+0

http://stackoverflow.com/questions/10765339/the-difference-among-sax-parser -xpath-dom-xmlpullparser – playmaker420

回答

0

为什么你不只是使用数据库?我认为对于存储超过200条记录,建议使用数据库。 另外,你的xml无效。你需要一个根标签是这样的:

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

使用db将解决我的大部分问题,但我不想使用它,因为我的数据是静态的!对于我来说静态内容使用db是没有意义的。我正在寻找一个正确的方式来做到这一点 – Reza