3

我已经将一个 XML 文件从/assets我的应用程序数据文件夹 ( data/data/package.name/files/) 中复制了出来。我这样做是因为用户将能够修改大量数据,并且我想将这些数据保存到内部存储器中,然后在他们重新启动应用程序时再次加载。这一切都很好,使用根浏览器我可以看到 XML 文件已正确复制到数据目录。

现在我需要使用LayoutInflater. 我将如何访问该文件?用XmlResourceParseror XmlPullParser?

4

2 回答 2

2

您不能使用LayoutInflater. 首先,您只能扩充布局资源,不能扩充任意文件。其次,根据您第一段中的描述,它首先不是布局文件。

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

于 2011-11-19T22:45:24.097 回答
1

Android 视图 API

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

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

视图膨胀严重依赖于在构建时完成的 XML 文件的预处理

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

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

于 2012-04-20T02:18:11.450 回答