从内部存储器中扩充XML文件

时间:2011-11-19 22:24:24

标签: android file inflate

我已将/assets的XML文件复制到我的应用程序数据文件夹(data/data/package.name/files/)。我这样做是因为用户可以修改大量数据,我想将这些数据保存到内部存储器中,然后在重新启动应用程序时再次加载它。这一切都运行良好,使用Root Browser我可以看到XML文件已正确复制到数据目录。

现在我需要使用LayoutInflater来扩充此XML文件。我该如何访问此文件?使用XmlResourceParserXmlPullParser

2 个答案:

答案 0 :(得分:2)

您无法使用LayoutInflater对该文件进行通知。首先,您只能扩充布局资源,而不是任意文件。其次,根据第一段中的描述,它首先不是布局文件。

如果要解析任意XML,请使用DOM,SAX或XmlPullParser

答案 1 :(得分:1)

来自Android view API

  

目前无法使用LayoutInflater   运行时在纯XML文件上运行XmlPullParser。

解决方案可能是之前预处理XML文件。您必须以与Android SDK在构建时相同的方式压缩XML文件:

  

观看通货膨胀在很大程度上依赖于在构建时完成的XML文件的预处理

我想您必须调用XmlPullParser.setInput来加载预处理的XML,然后将XmlPullParser传递给View.inflate。我希望即使对于不在APK中的内容也可以做这种事情。

我对你能找到的任何解决方案都很感兴趣。如果您找到或创建原型,请告诉我!这将是为我的开源应用程序创建插件架构的决定性步骤。